50 lines
1.6 KiB
MySQL
50 lines
1.6 KiB
MySQL
|
|
-- CreateEnum
|
||
|
|
CREATE TYPE "FlightDetailStatus" AS ENUM ('PENDING', 'CONFIRMED');
|
||
|
|
|
||
|
|
-- CreateTable
|
||
|
|
CREATE TABLE "Hotel" (
|
||
|
|
"id" TEXT NOT NULL,
|
||
|
|
"programId" TEXT NOT NULL,
|
||
|
|
"name" TEXT NOT NULL,
|
||
|
|
"address" TEXT,
|
||
|
|
"link" TEXT,
|
||
|
|
"notes" TEXT,
|
||
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||
|
|
|
||
|
|
CONSTRAINT "Hotel_pkey" PRIMARY KEY ("id")
|
||
|
|
);
|
||
|
|
|
||
|
|
-- CreateTable
|
||
|
|
CREATE TABLE "FlightDetail" (
|
||
|
|
"id" TEXT NOT NULL,
|
||
|
|
"attendingMemberId" TEXT NOT NULL,
|
||
|
|
"arrivalAt" TIMESTAMP(3),
|
||
|
|
"arrivalFlightNumber" TEXT,
|
||
|
|
"arrivalAirport" TEXT,
|
||
|
|
"departureAt" TIMESTAMP(3),
|
||
|
|
"departureFlightNumber" TEXT,
|
||
|
|
"departureAirport" TEXT,
|
||
|
|
"status" "FlightDetailStatus" NOT NULL DEFAULT 'PENDING',
|
||
|
|
"adminNotes" TEXT,
|
||
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||
|
|
|
||
|
|
CONSTRAINT "FlightDetail_pkey" PRIMARY KEY ("id")
|
||
|
|
);
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE UNIQUE INDEX "Hotel_programId_key" ON "Hotel"("programId");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE UNIQUE INDEX "FlightDetail_attendingMemberId_key" ON "FlightDetail"("attendingMemberId");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "FlightDetail_status_idx" ON "FlightDetail"("status");
|
||
|
|
|
||
|
|
-- AddForeignKey
|
||
|
|
ALTER TABLE "Hotel" ADD CONSTRAINT "Hotel_programId_fkey" FOREIGN KEY ("programId") REFERENCES "Program"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||
|
|
|
||
|
|
-- AddForeignKey
|
||
|
|
ALTER TABLE "FlightDetail" ADD CONSTRAINT "FlightDetail_attendingMemberId_fkey" FOREIGN KEY ("attendingMemberId") REFERENCES "AttendingMember"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|