78 lines
2.6 KiB
SQL
78 lines
2.6 KiB
SQL
-- CreateTable
|
|
CREATE TABLE "User" (
|
|
"id" TEXT NOT NULL PRIMARY KEY,
|
|
"email" TEXT NOT NULL,
|
|
"name" TEXT,
|
|
"password" TEXT NOT NULL,
|
|
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" DATETIME NOT NULL
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Session" (
|
|
"id" TEXT NOT NULL PRIMARY KEY,
|
|
"title" TEXT NOT NULL,
|
|
"collaborator" TEXT NOT NULL,
|
|
"date" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"userId" TEXT NOT NULL,
|
|
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" DATETIME NOT NULL,
|
|
CONSTRAINT "Session_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "SwotItem" (
|
|
"id" TEXT NOT NULL PRIMARY KEY,
|
|
"content" TEXT NOT NULL,
|
|
"category" TEXT NOT NULL,
|
|
"order" INTEGER NOT NULL DEFAULT 0,
|
|
"sessionId" TEXT NOT NULL,
|
|
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" DATETIME NOT NULL,
|
|
CONSTRAINT "SwotItem_sessionId_fkey" FOREIGN KEY ("sessionId") REFERENCES "Session" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Action" (
|
|
"id" TEXT NOT NULL PRIMARY KEY,
|
|
"title" TEXT NOT NULL,
|
|
"description" TEXT,
|
|
"priority" INTEGER NOT NULL DEFAULT 0,
|
|
"status" TEXT NOT NULL DEFAULT 'todo',
|
|
"dueDate" DATETIME,
|
|
"sessionId" TEXT NOT NULL,
|
|
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" DATETIME NOT NULL,
|
|
CONSTRAINT "Action_sessionId_fkey" FOREIGN KEY ("sessionId") REFERENCES "Session" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "ActionLink" (
|
|
"id" TEXT NOT NULL PRIMARY KEY,
|
|
"actionId" TEXT NOT NULL,
|
|
"swotItemId" TEXT NOT NULL,
|
|
CONSTRAINT "ActionLink_actionId_fkey" FOREIGN KEY ("actionId") REFERENCES "Action" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
|
|
CONSTRAINT "ActionLink_swotItemId_fkey" FOREIGN KEY ("swotItemId") REFERENCES "SwotItem" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "User_email_key" ON "User"("email");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "Session_userId_idx" ON "Session"("userId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "SwotItem_sessionId_idx" ON "SwotItem"("sessionId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "Action_sessionId_idx" ON "Action"("sessionId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "ActionLink_actionId_idx" ON "ActionLink"("actionId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "ActionLink_swotItemId_idx" ON "ActionLink"("swotItemId");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "ActionLink_actionId_swotItemId_key" ON "ActionLink"("actionId", "swotItemId");
|