| 1 | create or replace view vw_unassigned_requests as
|
|---|
| 2 | select r.id,
|
|---|
| 3 | r.customer_user_id,
|
|---|
| 4 | r.start_latitude,
|
|---|
| 5 | r.start_longitude,
|
|---|
| 6 | r.end_latitude,
|
|---|
| 7 | r.end_longitude,
|
|---|
| 8 | r.timestamp,
|
|---|
| 9 | r.number_of_children,
|
|---|
| 10 | r.status,
|
|---|
| 11 | r.female_driver,
|
|---|
| 12 | r.luggage,
|
|---|
| 13 | r.luggage_count,
|
|---|
| 14 | u.username as customer_username
|
|---|
| 15 | from Request r
|
|---|
| 16 | join AppUser u on r.customer_user_id = u.id
|
|---|
| 17 | where r.status = 'pending'::request_status;
|
|---|
| 18 |
|
|---|
| 19 | create or replace view vw_live_offers_for_customer as
|
|---|
| 20 | select o.id as offer_id,
|
|---|
| 21 | request_id,
|
|---|
| 22 | o.price,
|
|---|
| 23 | o.eta,
|
|---|
| 24 | o.customer_user_id as customer_id,
|
|---|
| 25 | cu.username as customer_username,
|
|---|
| 26 | cu.first_name as customer_fist_name,
|
|---|
| 27 | cu.last_name as customer_last_name,
|
|---|
| 28 | du.first_name as driver_first_name,
|
|---|
| 29 | du.last_name as driver_last_name
|
|---|
| 30 | from offer o
|
|---|
| 31 | join appuser du on o.driver_user_id = du.id
|
|---|
| 32 | join appuser cu on o.customer_user_id = cu.id
|
|---|
| 33 | where o.status = 'pending'::offer_status;
|
|---|
| 34 |
|
|---|
| 35 | create or replace view vw_available_drivers as
|
|---|
| 36 | select d.user_id, u.first_name, u.last_name, u.phone_number
|
|---|
| 37 | from Driver d
|
|---|
| 38 | join AppUser u on d.user_id = u.id
|
|---|
| 39 | join DriverLicense dl on d.driver_license_id = dl.id
|
|---|
| 40 | join driver_vehicle dc on dc.id_driver = d.user_id
|
|---|
| 41 | left join Ride r on r.driver_user_id = u.id
|
|---|
| 42 | where (dl.expire_date > CURRENT_DATE or dl.expire_date is null and dc.time_to is null)
|
|---|
| 43 | and r.status != 'in_progress'::ride_status;
|
|---|
| 44 |
|
|---|
| 45 | create or replace view all_drivers as
|
|---|
| 46 | with drivers_from_company as (select u.id, first_name, last_name, phone_number, email, True as from_company
|
|---|
| 47 | from Appuser u
|
|---|
| 48 | inner join Driver d on u.id = d.user_id),
|
|---|
| 49 | drivers_freelance as (select u.id, first_name, last_name, phone_number, email, False as from_company
|
|---|
| 50 | from Appuser u
|
|---|
| 51 | inner join Freelancedriver d on u.id = d.driver_user_id)
|
|---|
| 52 | select *
|
|---|
| 53 | from (select * from drivers_from_company union select * from drivers_freelance) drivers_temp;
|
|---|
| 54 |
|
|---|
| 55 | create or replace view customer_payments_ride as
|
|---|
| 56 | select c.user_id, cp.amount, cp.payment_method, r.end_time
|
|---|
| 57 | from customer c
|
|---|
| 58 | inner join customerpayment cp on c.user_id = cp.customer_user_id
|
|---|
| 59 | inner join payment p on p.id = cp.payment_id
|
|---|
| 60 | inner join ride r on p.completed_ride_id = r.id;
|
|---|
| 61 |
|
|---|
| 62 | create or replace view reports_on_drivers_rides as
|
|---|
| 63 | select r.title, r.reason, r.message, vehicle.vin, driver.user_id
|
|---|
| 64 | from Report r
|
|---|
| 65 | inner join Ride ride on ride.id = r.ride_id
|
|---|
| 66 | inner join Driver driver on driver.user_id = ride.driver_user_id
|
|---|
| 67 | inner join Vehicle vehicle on vehicle.vin = ride.vehicle_vin;
|
|---|
| 68 |
|
|---|
| 69 | create or replace view reviews_on_drivers as
|
|---|
| 70 | select d.user_id, review.rating, review.comment
|
|---|
| 71 | from Review review
|
|---|
| 72 | inner join Ride r on r.id = review.ride_id
|
|---|
| 73 | inner join Driver d on d.user_id = r.driver_user_id;
|
|---|
| 74 |
|
|---|
| 75 | create or replace view user_message_driver as
|
|---|
| 76 | select c.user_id as user_id, m.message, d.user_id as driver_id
|
|---|
| 77 | from chatmessage m
|
|---|
| 78 | inner join customer c on m.user_id_from = c.user_id
|
|---|
| 79 | inner join ride r on r.id = m.ride_id
|
|---|
| 80 | inner join driver d on d.user_id = r.driver_user_id;
|
|---|
| 81 |
|
|---|
| 82 | create or replace view vw_live_ride_monitor as
|
|---|
| 83 | select r.id as ride_id,
|
|---|
| 84 | r.start_time,
|
|---|
| 85 | cus.first_name as customer_first_name,
|
|---|
| 86 | cus.last_name as customer_last_name,
|
|---|
| 87 | drv.id as driver_id,
|
|---|
| 88 | drv.first_name as driver_first_name,
|
|---|
| 89 | drv.last_name as driver_last_name,
|
|---|
| 90 | req.number_of_adult_passengers + req.number_of_children as total_passengers,
|
|---|
| 91 | req.luggage_count,
|
|---|
| 92 | req.baby_seat_count,
|
|---|
| 93 | o.ETA,
|
|---|
| 94 | o.dispatcher_user_id,
|
|---|
| 95 | c.id as company_id,
|
|---|
| 96 | c.name as company_name
|
|---|
| 97 | from Ride r
|
|---|
| 98 | join Request req on r.request_id = req.id
|
|---|
| 99 | join Offer o on r.offer_id = o.id
|
|---|
| 100 | join AppUser drv on r.driver_user_id = drv.id
|
|---|
| 101 | join AppUser cus on req.customer_user_id = cus.id
|
|---|
| 102 | join EmploymentHistory eh on eh.employee_user_id = o.dispatcher_user_id and eh.end_date is null
|
|---|
| 103 | join Company c on c.id = eh.company_id
|
|---|
| 104 | where r.status = 'in_progress'; |
|---|