feat: schema for logistics hotels + flight tracking
Adds 2 new models for grand-finale logistics PR 2: - Hotel: 1:1 with Program (one per edition); name + address + link + notes - FlightDetail: 1:1 with AttendingMember; arrival + departure datetimes, flight numbers, airports, admin status (PENDING/CONFIRMED), admin notes Migration is purely additive: no DROP/ALTER COLUMN/RENAME. FKs point FROM new tables TO existing tables (Program, AttendingMember) with ON DELETE CASCADE only firing on parent deletion.
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
-- 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;
|
||||
Reference in New Issue
Block a user