-- CreateTable CREATE TABLE "Schedule" ( "id" TEXT NOT NULL, "userId" TEXT NOT NULL, "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updatedAt" TIMESTAMP(3) NOT NULL, CONSTRAINT "Schedule_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "Block" ( "id" TEXT NOT NULL, "scheduleId" TEXT NOT NULL, "startMinutes" INTEGER NOT NULL, "endMinutes" INTEGER NOT NULL, "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updatedAt" TIMESTAMP(3) NOT NULL, CONSTRAINT "Block_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "BlockProclamations" ( "blockId" TEXT NOT NULL, "proclamationId" TEXT NOT NULL, "sortOrder" INTEGER NOT NULL DEFAULT 0, "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updatedAt" TIMESTAMP(3) NOT NULL, CONSTRAINT "BlockProclamations_pkey" PRIMARY KEY ("blockId","proclamationId") ); -- CreateIndex CREATE UNIQUE INDEX "Schedule_userId_key" ON "Schedule"("userId"); -- CreateIndex CREATE INDEX "Block_scheduleId_idx" ON "Block"("scheduleId"); -- CreateIndex CREATE INDEX "BlockProclamations_proclamationId_idx" ON "BlockProclamations"("proclamationId"); -- AddForeignKey ALTER TABLE "Schedule" ADD CONSTRAINT "Schedule_userId_fkey" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "Block" ADD CONSTRAINT "Block_scheduleId_fkey" FOREIGN KEY ("scheduleId") REFERENCES "Schedule"("id") ON DELETE CASCADE ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "BlockProclamations" ADD CONSTRAINT "BlockProclamations_blockId_fkey" FOREIGN KEY ("blockId") REFERENCES "Block"("id") ON DELETE CASCADE ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "BlockProclamations" ADD CONSTRAINT "BlockProclamations_proclamationId_fkey" FOREIGN KEY ("proclamationId") REFERENCES "Proclamation"("id") ON DELETE RESTRICT ON UPDATE CASCADE;