56 lines
1.5 KiB
SQL
56 lines
1.5 KiB
SQL
-- CreateTable
|
|
CREATE TABLE "State" (
|
|
"name" TEXT NOT NULL,
|
|
|
|
CONSTRAINT "State_pkey" PRIMARY KEY ("name")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Task" (
|
|
"id" TEXT NOT NULL,
|
|
"title" TEXT NOT NULL,
|
|
"description" TEXT NOT NULL,
|
|
"dueDate" TEXT NOT NULL,
|
|
"completed" BOOLEAN NOT NULL DEFAULT false,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "Task_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "StateHistory" (
|
|
"id" TEXT NOT NULL,
|
|
"state" TEXT NOT NULL,
|
|
"date" TEXT NOT NULL,
|
|
"taskId" TEXT NOT NULL,
|
|
"order" INTEGER NOT NULL,
|
|
|
|
CONSTRAINT "StateHistory_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Note" (
|
|
"id" TEXT NOT NULL,
|
|
"content" TEXT NOT NULL,
|
|
"taskId" TEXT NOT NULL,
|
|
"order" INTEGER NOT NULL,
|
|
|
|
CONSTRAINT "Note_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "StateHistory_taskId_idx" ON "StateHistory"("taskId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "Note_taskId_idx" ON "Note"("taskId");
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "StateHistory" ADD CONSTRAINT "StateHistory_taskId_fkey" FOREIGN KEY ("taskId") REFERENCES "Task"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "StateHistory" ADD CONSTRAINT "StateHistory_state_fkey" FOREIGN KEY ("state") REFERENCES "State"("name") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Note" ADD CONSTRAINT "Note_taskId_fkey" FOREIGN KEY ("taskId") REFERENCES "Task"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|