34 lines
1.4 KiB
SQL
34 lines
1.4 KiB
SQL
-- CreateTable
|
|
CREATE TABLE "Challenge" (
|
|
"id" TEXT NOT NULL PRIMARY KEY,
|
|
"challengerId" TEXT NOT NULL,
|
|
"challengedId" TEXT NOT NULL,
|
|
"title" TEXT NOT NULL,
|
|
"description" TEXT NOT NULL,
|
|
"pointsReward" INTEGER NOT NULL DEFAULT 100,
|
|
"status" TEXT NOT NULL DEFAULT 'PENDING',
|
|
"adminId" TEXT,
|
|
"adminComment" TEXT,
|
|
"winnerId" TEXT,
|
|
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"acceptedAt" DATETIME,
|
|
"completedAt" DATETIME,
|
|
"updatedAt" DATETIME NOT NULL,
|
|
CONSTRAINT "Challenge_challengerId_fkey" FOREIGN KEY ("challengerId") REFERENCES "User" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
|
|
CONSTRAINT "Challenge_challengedId_fkey" FOREIGN KEY ("challengedId") REFERENCES "User" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
|
|
CONSTRAINT "Challenge_adminId_fkey" FOREIGN KEY ("adminId") REFERENCES "User" ("id") ON DELETE SET NULL ON UPDATE CASCADE,
|
|
CONSTRAINT "Challenge_winnerId_fkey" FOREIGN KEY ("winnerId") REFERENCES "User" ("id") ON DELETE SET NULL ON UPDATE CASCADE
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "Challenge_challengerId_idx" ON "Challenge"("challengerId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "Challenge_challengedId_idx" ON "Challenge"("challengedId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "Challenge_status_idx" ON "Challenge"("status");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "Challenge_adminId_idx" ON "Challenge"("adminId");
|