105 lines
4.1 KiB
SQL
105 lines
4.1 KiB
SQL
-- CreateEnum
|
|
CREATE TYPE "LivePhase" AS ENUM ('ON_DECK', 'PRESENTING', 'QA', 'SCORING');
|
|
|
|
-- CreateEnum
|
|
CREATE TYPE "AudiencePhase" AS ENUM ('CLOSED', 'OPEN');
|
|
|
|
-- AlterTable
|
|
ALTER TABLE "LiveProgressCursor" ADD COLUMN "overrideSlide" TEXT,
|
|
ADD COLUMN "phaseDurationSeconds" INTEGER,
|
|
ADD COLUMN "phasePausedAccumMs" INTEGER NOT NULL DEFAULT 0,
|
|
ADD COLUMN "phasePausedAt" TIMESTAMP(3),
|
|
ADD COLUMN "phaseStartedAt" TIMESTAMP(3),
|
|
ADD COLUMN "projectPhase" "LivePhase" NOT NULL DEFAULT 'ON_DECK',
|
|
ADD COLUMN "timingLogJson" JSONB;
|
|
|
|
-- AlterTable
|
|
ALTER TABLE "LiveVote" ADD COLUMN "comment" TEXT;
|
|
|
|
-- AlterTable
|
|
ALTER TABLE "LiveVotingSession" ADD COLUMN "allowOverallFavorite" BOOLEAN NOT NULL DEFAULT false,
|
|
ADD COLUMN "audiencePhase" "AudiencePhase" NOT NULL DEFAULT 'CLOSED',
|
|
ADD COLUMN "audienceWindowClosesAt" TIMESTAMP(3),
|
|
ADD COLUMN "audienceWindowKey" TEXT,
|
|
ADD COLUMN "audienceWindowOpenedAt" TIMESTAMP(3);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "AudienceFavoriteVote" (
|
|
"id" TEXT NOT NULL,
|
|
"sessionId" TEXT NOT NULL,
|
|
"windowKey" TEXT NOT NULL,
|
|
"projectId" TEXT NOT NULL,
|
|
"audienceVoterId" TEXT NOT NULL,
|
|
"ipAddress" TEXT,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "AudienceFavoriteVote_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "LiveNote" (
|
|
"id" TEXT NOT NULL,
|
|
"roundId" TEXT NOT NULL,
|
|
"projectId" TEXT NOT NULL,
|
|
"userId" TEXT NOT NULL,
|
|
"content" TEXT NOT NULL,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "LiveNote_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "RevealState" (
|
|
"id" TEXT NOT NULL,
|
|
"sessionId" TEXT NOT NULL,
|
|
"status" TEXT NOT NULL DEFAULT 'DRAFT',
|
|
"stepsJson" JSONB NOT NULL,
|
|
"currentStepIndex" INTEGER NOT NULL DEFAULT -1,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "RevealState_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "AudienceFavoriteVote_sessionId_windowKey_ipAddress_idx" ON "AudienceFavoriteVote"("sessionId", "windowKey", "ipAddress");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "AudienceFavoriteVote_sessionId_windowKey_projectId_idx" ON "AudienceFavoriteVote"("sessionId", "windowKey", "projectId");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "AudienceFavoriteVote_sessionId_windowKey_audienceVoterId_key" ON "AudienceFavoriteVote"("sessionId", "windowKey", "audienceVoterId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "LiveNote_userId_idx" ON "LiveNote"("userId");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "LiveNote_roundId_projectId_userId_key" ON "LiveNote"("roundId", "projectId", "userId");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "RevealState_sessionId_key" ON "RevealState"("sessionId");
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "AudienceFavoriteVote" ADD CONSTRAINT "AudienceFavoriteVote_sessionId_fkey" FOREIGN KEY ("sessionId") REFERENCES "LiveVotingSession"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "AudienceFavoriteVote" ADD CONSTRAINT "AudienceFavoriteVote_audienceVoterId_fkey" FOREIGN KEY ("audienceVoterId") REFERENCES "AudienceVoter"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "AudienceFavoriteVote" ADD CONSTRAINT "AudienceFavoriteVote_projectId_fkey" FOREIGN KEY ("projectId") REFERENCES "Project"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "LiveNote" ADD CONSTRAINT "LiveNote_roundId_fkey" FOREIGN KEY ("roundId") REFERENCES "Round"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "LiveNote" ADD CONSTRAINT "LiveNote_projectId_fkey" FOREIGN KEY ("projectId") REFERENCES "Project"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "LiveNote" ADD CONSTRAINT "LiveNote_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "RevealState" ADD CONSTRAINT "RevealState_sessionId_fkey" FOREIGN KEY ("sessionId") REFERENCES "LiveVotingSession"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|