-- CreateEnum CREATE TYPE "TaskStatus" AS ENUM ('TODO', 'DOING', 'BLOCKED', 'DONE'); -- AlterTable ALTER TABLE "Project" ADD COLUMN "progressFromTasks" BOOLEAN NOT NULL DEFAULT false; -- CreateTable CREATE TABLE "Task" ( "id" TEXT NOT NULL, "projectId" TEXT NOT NULL, "title" TEXT NOT NULL, "description" TEXT, "status" "TaskStatus" NOT NULL DEFAULT 'TODO', "position" INTEGER NOT NULL DEFAULT 0, "dueDate" TIMESTAMP(3), "labels" TEXT[] DEFAULT ARRAY[]::TEXT[], "doneAt" TIMESTAMP(3), "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updatedAt" TIMESTAMP(3) NOT NULL, CONSTRAINT "Task_pkey" PRIMARY KEY ("id") ); -- CreateIndex CREATE INDEX "Task_projectId_status_position_idx" ON "Task"("projectId", "status", "position"); -- AddForeignKey ALTER TABLE "Task" ADD CONSTRAINT "Task_projectId_fkey" FOREIGN KEY ("projectId") REFERENCES "Project"("id") ON DELETE CASCADE ON UPDATE CASCADE;