mirror of
https://github.com/Sendouc/sendou.ink.git
synced 2026-04-24 15:08:44 -05:00
93 lines
2.7 KiB
SQL
93 lines
2.7 KiB
SQL
-- CreateEnum
|
|
CREATE TYPE "Mode" AS ENUM ('TW', 'SZ', 'TC', 'RM', 'CB');
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "User" (
|
|
"id" SERIAL NOT NULL,
|
|
"discordId" TEXT NOT NULL,
|
|
"discordName" TEXT NOT NULL,
|
|
"discordDiscriminator" TEXT NOT NULL,
|
|
"discordAvatar" TEXT,
|
|
"discordRefreshToken" TEXT NOT NULL,
|
|
"twitch" TEXT,
|
|
"twitter" TEXT,
|
|
"youtubeId" TEXT,
|
|
"youtubeName" TEXT,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "User_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Organization" (
|
|
"id" SERIAL NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"nameForUrl" TEXT NOT NULL,
|
|
"ownerId" INTEGER NOT NULL,
|
|
"discordInvite" TEXT NOT NULL,
|
|
"twitter" TEXT,
|
|
|
|
CONSTRAINT "Organization_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Tournament" (
|
|
"id" SERIAL NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"nameForUrl" TEXT NOT NULL,
|
|
"description" TEXT,
|
|
"startTime" TIMESTAMP(3) NOT NULL,
|
|
"checkInTime" TIMESTAMP(3) NOT NULL,
|
|
"bannerBackground" TEXT NOT NULL,
|
|
"bannerTextHSLArgs" TEXT NOT NULL,
|
|
"organizerId" INTEGER NOT NULL,
|
|
|
|
CONSTRAINT "Tournament_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Stage" (
|
|
"id" SERIAL NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"mode" "Mode" NOT NULL,
|
|
|
|
CONSTRAINT "Stage_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "_StageToTournament" (
|
|
"A" INTEGER NOT NULL,
|
|
"B" INTEGER NOT NULL
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "User_discordId_key" ON "User"("discordId");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "Organization_nameForUrl_key" ON "Organization"("nameForUrl");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "Organization_ownerId_key" ON "Organization"("ownerId");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "Tournament_nameForUrl_organizerId_key" ON "Tournament"("nameForUrl", "organizerId");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "_StageToTournament_AB_unique" ON "_StageToTournament"("A", "B");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "_StageToTournament_B_index" ON "_StageToTournament"("B");
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Organization" ADD CONSTRAINT "Organization_ownerId_fkey" FOREIGN KEY ("ownerId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Tournament" ADD CONSTRAINT "Tournament_organizerId_fkey" FOREIGN KEY ("organizerId") REFERENCES "Organization"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "_StageToTournament" ADD FOREIGN KEY ("A") REFERENCES "Stage"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "_StageToTournament" ADD FOREIGN KEY ("B") REFERENCES "Tournament"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|