@@ -0,0 +1,144 @@
|
||||
-- CreateEnum
|
||||
CREATE TYPE "EventType" AS ENUM ('SHOWCASE', 'RELEASE', 'TOURNAMENT', 'OTHER');
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "Game" (
|
||||
"id" TEXT NOT NULL,
|
||||
"slug" TEXT NOT NULL,
|
||||
"title" TEXT NOT NULL,
|
||||
"coverImage" TEXT,
|
||||
"description" TEXT,
|
||||
"releaseDate" TIMESTAMP(3),
|
||||
"isTBD" BOOLEAN NOT NULL DEFAULT false,
|
||||
"releaseDateText" TEXT,
|
||||
"igdbId" INTEGER,
|
||||
"rawgId" INTEGER,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
"deletedAt" TIMESTAMP(3),
|
||||
|
||||
CONSTRAINT "Game_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "Platform" (
|
||||
"id" TEXT NOT NULL,
|
||||
"name" TEXT NOT NULL,
|
||||
"slug" TEXT NOT NULL,
|
||||
"icon" TEXT,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "Platform_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "GamePlatform" (
|
||||
"gameId" TEXT NOT NULL,
|
||||
"platformId" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "GamePlatform_pkey" PRIMARY KEY ("gameId","platformId")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "Event" (
|
||||
"id" TEXT NOT NULL,
|
||||
"title" TEXT NOT NULL,
|
||||
"slug" TEXT NOT NULL,
|
||||
"description" TEXT,
|
||||
"startTime" TIMESTAMP(3) NOT NULL,
|
||||
"endTime" TIMESTAMP(3),
|
||||
"streamUrl" TEXT,
|
||||
"coverImage" TEXT,
|
||||
"type" "EventType" NOT NULL DEFAULT 'SHOWCASE',
|
||||
"source" TEXT,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
"deletedAt" TIMESTAMP(3),
|
||||
|
||||
CONSTRAINT "Event_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "Subscription" (
|
||||
"id" TEXT NOT NULL,
|
||||
"userId" TEXT NOT NULL,
|
||||
"gameId" TEXT,
|
||||
"eventId" TEXT,
|
||||
"notifyEmail" BOOLEAN NOT NULL DEFAULT false,
|
||||
"notifyPush" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
|
||||
CONSTRAINT "Subscription_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "ThemeConfig" (
|
||||
"id" TEXT NOT NULL,
|
||||
"key" TEXT NOT NULL DEFAULT 'current_theme',
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"gameTitle" TEXT NOT NULL,
|
||||
"primaryColor" TEXT NOT NULL,
|
||||
"secondaryColor" TEXT NOT NULL,
|
||||
"backgroundColor" TEXT NOT NULL,
|
||||
"backgroundImage" TEXT,
|
||||
"logoImage" TEXT,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "ThemeConfig_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "Game_slug_key" ON "Game"("slug");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "Game_igdbId_key" ON "Game"("igdbId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "Game_rawgId_key" ON "Game"("rawgId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "Game_releaseDate_idx" ON "Game"("releaseDate");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "Game_slug_idx" ON "Game"("slug");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "Platform_name_key" ON "Platform"("name");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "Platform_slug_key" ON "Platform"("slug");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "Event_slug_key" ON "Event"("slug");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "Event_startTime_idx" ON "Event"("startTime");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "Subscription_userId_idx" ON "Subscription"("userId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "Subscription_userId_gameId_key" ON "Subscription"("userId", "gameId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "Subscription_userId_eventId_key" ON "Subscription"("userId", "eventId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "ThemeConfig_key_key" ON "ThemeConfig"("key");
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "GamePlatform" ADD CONSTRAINT "GamePlatform_gameId_fkey" FOREIGN KEY ("gameId") REFERENCES "Game"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "GamePlatform" ADD CONSTRAINT "GamePlatform_platformId_fkey" FOREIGN KEY ("platformId") REFERENCES "Platform"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Subscription" ADD CONSTRAINT "Subscription_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Subscription" ADD CONSTRAINT "Subscription_gameId_fkey" FOREIGN KEY ("gameId") REFERENCES "Game"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Subscription" ADD CONSTRAINT "Subscription_eventId_fkey" FOREIGN KEY ("eventId") REFERENCES "Event"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
Reference in New Issue
Block a user