-- CreateEnum CREATE TYPE "CourtBookingStatus" AS ENUM ('CONFIRMED', 'CANCELLED'); -- CreateTable CREATE TABLE "court_bookings" ( "id" UUID NOT NULL, "court_id" UUID NOT NULL, "booking_date" DATE NOT NULL, "start_time" VARCHAR(5) NOT NULL, "end_time" VARCHAR(5) NOT NULL, "customer_name" VARCHAR(120) NOT NULL, "customer_phone" VARCHAR(30) NOT NULL, "status" "CourtBookingStatus" NOT NULL DEFAULT 'CONFIRMED', "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updated_at" TIMESTAMP(3) NOT NULL, CONSTRAINT "court_bookings_pkey" PRIMARY KEY ("id") ); -- CreateIndex CREATE UNIQUE INDEX "court_bookings_court_id_booking_date_start_time_key" ON "court_bookings"("court_id", "booking_date", "start_time"); -- CreateIndex CREATE INDEX "court_bookings_court_id_booking_date_idx" ON "court_bookings"("court_id", "booking_date"); -- CreateIndex CREATE INDEX "court_bookings_booking_date_idx" ON "court_bookings"("booking_date"); -- AddForeignKey ALTER TABLE "court_bookings" ADD CONSTRAINT "court_bookings_court_id_fkey" FOREIGN KEY ("court_id") REFERENCES "courts"("id") ON DELETE CASCADE ON UPDATE CASCADE;