| | 1 | = Views = |
| | 2 | |
| | 3 | == available_spots_view == |
| | 4 | |
| | 5 | {{{ |
| | 6 | SELECT p.parking_id, |
| | 7 | p.name AS parking_name, |
| | 8 | count(ps.parking_spot_id) AS free_spots |
| | 9 | FROM parking p |
| | 10 | JOIN parking_spot ps ON p.parking_id = ps.parking_id |
| | 11 | WHERE ps.status = 'free' |
| | 12 | GROUP BY p.parking_id, p.name; |
| | 13 | }}} |
| | 14 | |
| | 15 | Овој view го прикажува бројот на моментално слободни паркинг места за секој паркинг, земајќи ги предвид само местата со статус "free". |
| | 16 | Ја имплементира бизнис логиката за следење на достапноста на капацитетите и овозможува корисниците и администраторите да имаат увид во слободните места. |
| | 17 | |
| | 18 | == parking_revenue_view == |
| | 19 | |
| | 20 | {{{ |
| | 21 | SELECT p.parking_id, |
| | 22 | p.name, |
| | 23 | sum(ps.total_amount) AS total_revenue |
| | 24 | FROM parking p |
| | 25 | JOIN parking_session ps ON p.parking_id = ps.parking_id |
| | 26 | GROUP BY p.parking_id, p.name; |
| | 27 | }}} |
| | 28 | |
| | 29 | Овој view го пресметува вкупниот приход остварен од секој паркинг преку сите реализирани паркинг сесии. |
| | 30 | Ја имплементира бизнис логиката за финансиска анализа и мониторинг на приходите генерирани од системот. |
| | 31 | |
| | 32 | == parking_working_hours_view == |
| | 33 | |
| | 34 | {{{ |
| | 35 | SELECT p.name AS parking_name, |
| | 36 | wh.day_of_week, |
| | 37 | wh.open_time, |
| | 38 | wh.close_time |
| | 39 | FROM parking p |
| | 40 | JOIN working_hour wh ON p.parking_id = wh.parking_id; |
| | 41 | }}} |
| | 42 | |
| | 43 | Овој view ги прикажува работните часови на секој паркинг по денови во неделата. |
| | 44 | Ја имплементира бизнис логиката за управување со достапноста на паркинзите и проверка кога одреден паркинг е оперативен. |
| | 45 | |
| | 46 | == vw_active_parking_sessions == |
| | 47 | |
| | 48 | {{{ |
| | 49 | SELECT DISTINCT ON (u.user_id) |
| | 50 | ps.session_id, |
| | 51 | u.user_id, |
| | 52 | u.first_name, |
| | 53 | u.last_name, |
| | 54 | v.vehicle_id, |
| | 55 | v.license_plate, |
| | 56 | p.parking_id, |
| | 57 | p.name AS parking_name, |
| | 58 | z.zone_id, |
| | 59 | z.name AS zone_name, |
| | 60 | ps.start_time, |
| | 61 | ps.end_time, |
| | 62 | ss.name AS session_status, |
| | 63 | ps.total_amount |
| | 64 | FROM parking_session ps |
| | 65 | JOIN app_user u ON u.user_id = ps.user_id |
| | 66 | JOIN vehicle v ON v.vehicle_id = ps.vehicle_id |
| | 67 | JOIN parking p ON p.parking_id = ps.parking_id |
| | 68 | JOIN parking_location pl ON pl.parking_id = p.parking_id |
| | 69 | JOIN zone z ON z.zone_id = pl.zone_id |
| | 70 | JOIN session_status ss ON ss.session_status_id = ps.session_status_id |
| | 71 | WHERE lower(ss.name) IN ('active','reserved','overdue') |
| | 72 | ORDER BY u.user_id, ps.start_time DESC; |
| | 73 | }}} |
| | 74 | |
| | 75 | Овој view ги прикажува активните, резервираните и задоцнетите паркинг сесии со информации за корисникот, возилото и паркинг локацијата. |
| | 76 | Ја имплементира бизнис логиката за следење на тековните паркинг активности и овозможува мониторинг на активните сесии. |
| | 77 | |
| | 78 | == vw_parking_prices_by_zone == |
| | 79 | |
| | 80 | {{{ |
| | 81 | SELECT p.parking_id, |
| | 82 | p.name AS parking_name, |
| | 83 | c.name AS city_name, |
| | 84 | z.zone_id, |
| | 85 | z.name AS zone_name, |
| | 86 | t.tariff_id, |
| | 87 | t.duration, |
| | 88 | pr.price, |
| | 89 | pr.valid_from, |
| | 90 | pr.valid_to |
| | 91 | FROM parking p |
| | 92 | JOIN city c ON c.city_id = p.city_id |
| | 93 | JOIN parking_location pl ON pl.parking_id = p.parking_id |
| | 94 | JOIN zone z ON z.zone_id = pl.zone_id |
| | 95 | JOIN price_list pr ON pr.parking_id = p.parking_id |
| | 96 | JOIN tariff t ON t.tariff_id = pr.tariff_id; |
| | 97 | }}} |
| | 98 | |
| | 99 | Овој view ги прикажува цените за паркирање според зона, тарифа и период на важност, заедно со информациите за паркингот и градот. |
| | 100 | Ја имплементира бизнис логиката за управување со ценовници и овозможува преглед на активните тарифи за различни паркинг локации. |
| | 101 | |
| | 102 | == vw_payment_details == |
| | 103 | |
| | 104 | {{{ |
| | 105 | SELECT p.payment_id, |
| | 106 | p.user_id, |
| | 107 | au.first_name, |
| | 108 | au.last_name, |
| | 109 | au.email, |
| | 110 | p.parking_session_id, |
| | 111 | p.amount, |
| | 112 | p.payment_date, |
| | 113 | p.payment_method_id, |
| | 114 | pm.name AS payment_method_name |
| | 115 | FROM payment p |
| | 116 | JOIN app_user au ON au.user_id = p.user_id |
| | 117 | JOIN payment_method pm ON pm.payment_method_id = p.payment_method_id; |
| | 118 | }}} |
| | 119 | |
| | 120 | Овој view прикажува детални информации за сите извршени плаќања, вклучувајќи податоци за корисникот, износот и методот на плаќање. |
| | 121 | Ја имплементира бизнис логиката за евиденција, следење и анализа на финансиските трансакции во системот. |
| | 122 | |
| | 123 | == vw_penalty_details == |
| | 124 | |
| | 125 | {{{ |
| | 126 | SELECT p.penalty_id, |
| | 127 | p.user_id, |
| | 128 | au.first_name, |
| | 129 | au.last_name, |
| | 130 | au.email, |
| | 131 | p.vehicle_id, |
| | 132 | v.license_plate, |
| | 133 | v.vehicle_type, |
| | 134 | v.brand, |
| | 135 | v.model, |
| | 136 | p.parking_session_id, |
| | 137 | p.parking_spot_id, |
| | 138 | p.penalty_type_id, |
| | 139 | pt.name AS penalty_type_name, |
| | 140 | p.amount, |
| | 141 | p.penalty_date, |
| | 142 | p.penalty_status_id, |
| | 143 | ps.name AS penalty_status_name, |
| | 144 | p.description |
| | 145 | FROM penalty p |
| | 146 | JOIN app_user au ON au.user_id = p.user_id |
| | 147 | JOIN vehicle v ON v.vehicle_id = p.vehicle_id |
| | 148 | JOIN penalty_type pt ON pt.penalty_type_id = p.penalty_type_id |
| | 149 | JOIN penalty_status ps ON ps.penalty_status_id = p.penalty_status_id; |
| | 150 | }}} |
| | 151 | |
| | 152 | Овој view прикажува детални информации за сите изречени казни, вклучувајќи податоци за корисникот, возилото, типот и статусот на казната. |
| | 153 | Ја имплементира бизнис логиката за управување со прекршоци, следење на санкции и контрола на казнените постапки во системот. |
| | 154 | |
| | 155 | == vw_reservation_details == |
| | 156 | |
| | 157 | {{{ |
| | 158 | SELECT r.reservation_id, |
| | 159 | r.user_id, |
| | 160 | au.first_name, |
| | 161 | au.last_name, |
| | 162 | au.email, |
| | 163 | r.vehicle_id, |
| | 164 | v.license_plate, |
| | 165 | v.vehicle_type, |
| | 166 | v.brand, |
| | 167 | v.model, |
| | 168 | r.parking_id, |
| | 169 | p.name AS parking_name, |
| | 170 | p.address, |
| | 171 | r.reservation_type, |
| | 172 | r.reservation_status, |
| | 173 | r.start_time, |
| | 174 | r.end_time, |
| | 175 | r.created_at, |
| | 176 | r.reservation_code |
| | 177 | FROM reservation r |
| | 178 | JOIN app_user au ON au.user_id = r.user_id |
| | 179 | JOIN vehicle v ON v.vehicle_id = r.vehicle_id |
| | 180 | JOIN parking p ON p.parking_id = r.parking_id; |
| | 181 | }}} |
| | 182 | |
| | 183 | Овој view прикажува детални информации за сите направени резервации, вклучувајќи податоци за корисникот, возилото и избраниот паркинг. |
| | 184 | Ја имплементира бизнис логиката за управување со резервации и овозможува следење на резервираните паркинг места и нивниот статус. |
| | 185 | |
| | 186 | == vw_user_parking_history == |
| | 187 | |
| | 188 | {{{ |
| | 189 | SELECT u.user_id, |
| | 190 | u.first_name, |
| | 191 | u.last_name, |
| | 192 | u.email, |
| | 193 | v.vehicle_id, |
| | 194 | v.license_plate, |
| | 195 | p.parking_id, |
| | 196 | p.name AS parking_name, |
| | 197 | ps.session_id, |
| | 198 | ps.start_time, |
| | 199 | ps.end_time, |
| | 200 | ss.name AS session_status, |
| | 201 | ps.total_amount, |
| | 202 | r.reservation_id, |
| | 203 | r.reservation_status |
| | 204 | FROM app_user u |
| | 205 | JOIN parking_session ps ON ps.user_id = u.user_id |
| | 206 | JOIN vehicle v ON v.vehicle_id = ps.vehicle_id |
| | 207 | JOIN parking p ON p.parking_id = ps.parking_id |
| | 208 | JOIN session_status ss ON ss.session_status_id = ps.session_status_id |
| | 209 | LEFT JOIN reservation r ON r.reservation_id = ps.reservation_id; |
| | 210 | }}} |
| | 211 | |
| | 212 | Овој view прикажува целосна историја на паркирање за секој корисник, вклучувајќи информации за сесиите, возилата, паркинзите и поврзаните резервации. |
| | 213 | Ја имплементира бизнис логиката за историски преглед и анализа на активностите на корисниците во системот. |