= Views = == available_spots_view == {{{ SELECT p.parking_id, p.name AS parking_name, count(ps.parking_spot_id) AS free_spots FROM parking p JOIN parking_spot ps ON p.parking_id = ps.parking_id WHERE ps.status = 'free' GROUP BY p.parking_id, p.name; }}} Овој view го прикажува бројот на моментално слободни паркинг места за секој паркинг, земајќи ги предвид само местата со статус "free". Ја имплементира бизнис логиката за следење на достапноста на капацитетите и овозможува корисниците и администраторите да имаат увид во слободните места. == parking_revenue_view == {{{ SELECT p.parking_id, p.name, sum(ps.total_amount) AS total_revenue FROM parking p JOIN parking_session ps ON p.parking_id = ps.parking_id GROUP BY p.parking_id, p.name; }}} Овој view го пресметува вкупниот приход остварен од секој паркинг преку сите реализирани паркинг сесии. Ја имплементира бизнис логиката за финансиска анализа и мониторинг на приходите генерирани од системот. == parking_working_hours_view == {{{ SELECT p.name AS parking_name, wh.day_of_week, wh.open_time, wh.close_time FROM parking p JOIN working_hour wh ON p.parking_id = wh.parking_id; }}} Овој view ги прикажува работните часови на секој паркинг по денови во неделата. Ја имплементира бизнис логиката за управување со достапноста на паркинзите и проверка кога одреден паркинг е оперативен. == vw_active_parking_sessions == {{{ SELECT DISTINCT ON (u.user_id) ps.session_id, u.user_id, u.first_name, u.last_name, v.vehicle_id, v.license_plate, p.parking_id, p.name AS parking_name, z.zone_id, z.name AS zone_name, ps.start_time, ps.end_time, ss.name AS session_status, ps.total_amount FROM parking_session ps JOIN app_user u ON u.user_id = ps.user_id JOIN vehicle v ON v.vehicle_id = ps.vehicle_id JOIN parking p ON p.parking_id = ps.parking_id JOIN parking_location pl ON pl.parking_id = p.parking_id JOIN zone z ON z.zone_id = pl.zone_id JOIN session_status ss ON ss.session_status_id = ps.session_status_id WHERE lower(ss.name) IN ('active','reserved','overdue') ORDER BY u.user_id, ps.start_time DESC; }}} Овој view ги прикажува активните, резервираните и задоцнетите паркинг сесии со информации за корисникот, возилото и паркинг локацијата. Ја имплементира бизнис логиката за следење на тековните паркинг активности и овозможува мониторинг на активните сесии. == vw_parking_prices_by_zone == {{{ SELECT p.parking_id, p.name AS parking_name, c.name AS city_name, z.zone_id, z.name AS zone_name, t.tariff_id, t.duration, pr.price, pr.valid_from, pr.valid_to FROM parking p JOIN city c ON c.city_id = p.city_id JOIN parking_location pl ON pl.parking_id = p.parking_id JOIN zone z ON z.zone_id = pl.zone_id JOIN price_list pr ON pr.parking_id = p.parking_id JOIN tariff t ON t.tariff_id = pr.tariff_id; }}} Овој view ги прикажува цените за паркирање според зона, тарифа и период на важност, заедно со информациите за паркингот и градот. Ја имплементира бизнис логиката за управување со ценовници и овозможува преглед на активните тарифи за различни паркинг локации. == vw_payment_details == {{{ SELECT p.payment_id, p.user_id, au.first_name, au.last_name, au.email, p.parking_session_id, p.amount, p.payment_date, p.payment_method_id, pm.name AS payment_method_name FROM payment p JOIN app_user au ON au.user_id = p.user_id JOIN payment_method pm ON pm.payment_method_id = p.payment_method_id; }}} Овој view прикажува детални информации за сите извршени плаќања, вклучувајќи податоци за корисникот, износот и методот на плаќање. Ја имплементира бизнис логиката за евиденција, следење и анализа на финансиските трансакции во системот. == vw_penalty_details == {{{ SELECT p.penalty_id, p.user_id, au.first_name, au.last_name, au.email, p.vehicle_id, v.license_plate, v.vehicle_type, v.brand, v.model, p.parking_session_id, p.parking_spot_id, p.penalty_type_id, pt.name AS penalty_type_name, p.amount, p.penalty_date, p.penalty_status_id, ps.name AS penalty_status_name, p.description FROM penalty p JOIN app_user au ON au.user_id = p.user_id JOIN vehicle v ON v.vehicle_id = p.vehicle_id JOIN penalty_type pt ON pt.penalty_type_id = p.penalty_type_id JOIN penalty_status ps ON ps.penalty_status_id = p.penalty_status_id; }}} Овој view прикажува детални информации за сите изречени казни, вклучувајќи податоци за корисникот, возилото, типот и статусот на казната. Ја имплементира бизнис логиката за управување со прекршоци, следење на санкции и контрола на казнените постапки во системот. == vw_reservation_details == {{{ SELECT r.reservation_id, r.user_id, au.first_name, au.last_name, au.email, r.vehicle_id, v.license_plate, v.vehicle_type, v.brand, v.model, r.parking_id, p.name AS parking_name, p.address, r.reservation_type, r.reservation_status, r.start_time, r.end_time, r.created_at, r.reservation_code FROM reservation r JOIN app_user au ON au.user_id = r.user_id JOIN vehicle v ON v.vehicle_id = r.vehicle_id JOIN parking p ON p.parking_id = r.parking_id; }}} Овој view прикажува детални информации за сите направени резервации, вклучувајќи податоци за корисникот, возилото и избраниот паркинг. Ја имплементира бизнис логиката за управување со резервации и овозможува следење на резервираните паркинг места и нивниот статус. == vw_user_parking_history == {{{ SELECT u.user_id, u.first_name, u.last_name, u.email, v.vehicle_id, v.license_plate, p.parking_id, p.name AS parking_name, ps.session_id, ps.start_time, ps.end_time, ss.name AS session_status, ps.total_amount, r.reservation_id, r.reservation_status FROM app_user u JOIN parking_session ps ON ps.user_id = u.user_id JOIN vehicle v ON v.vehicle_id = ps.vehicle_id JOIN parking p ON p.parking_id = ps.parking_id JOIN session_status ss ON ss.session_status_id = ps.session_status_id LEFT JOIN reservation r ON r.reservation_id = ps.reservation_id; }}} Овој view прикажува целосна историја на паркирање за секој корисник, вклучувајќи информации за сесиите, возилата, паркинзите и поврзаните резервации. Ја имплементира бизнис логиката за историски преглед и анализа на активностите на корисниците во системот.