-- View: public.BookingsTimeStatus

-- DROP VIEW public."BookingsTimeStatus";

CREATE OR REPLACE VIEW public."BookingTimeStatus"
 AS
 SELECT "Booking".id,
    "Booking".uid,
    "Booking"."eventTypeId",
    "Booking".title,
    "Booking".description,
    "Booking"."startTime",
    "Booking"."endTime",
    "Booking"."createdAt",
    "Booking".location,
    "Booking".paid,
    "Booking".status,
    "Booking".rescheduled,
    "Booking"."userId",
    "et"."teamId",
	"et"."length" as "eventLength",
        CASE
            WHEN "Booking".rescheduled IS TRUE THEN 'rescheduled'::text
            WHEN "Booking".status = 'cancelled'::"BookingStatus" AND "Booking".rescheduled IS FALSE THEN 'cancelled'::text
            WHEN "Booking"."endTime" < now() THEN 'completed'::text
            WHEN "Booking"."endTime" > now() THEN 'uncompleted'::text
            ELSE NULL::text
        END AS "timeStatus"
   FROM "Booking"
     LEFT JOIN "EventType" et ON "Booking"."eventTypeId" = et.id
	 LEFT JOIN "Membership" mb ON "mb"."userId" = "Booking"."userId";
 


