| Version 1 (modified by , 4 hours ago) ( diff ) |
|---|
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 прикажува целосна историја на паркирање за секој корисник, вклучувајќи информации за сесиите, возилата, паркинзите и поврзаните резервации. Ја имплементира бизнис логиката за историски преглед и анализа на активностите на корисниците во системот.
