-- CreateEnum CREATE TYPE "public"."UserRole" AS ENUM ('Standard', 'Admin'); -- CreateEnum CREATE TYPE "public"."Status" AS ENUM ('todo', 'in_progress', 'done'); -- CreateTable CREATE TABLE "public"."User" ( "id" SERIAL NOT NULL, "name" TEXT NOT NULL, "email" TEXT NOT NULL, "pwdHash" TEXT, "role" "public"."UserRole" NOT NULL DEFAULT 'Standard', CONSTRAINT "User_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "public"."Board" ( "id" SERIAL NOT NULL, "userId" INTEGER NOT NULL, "name" TEXT NOT NULL, "description" TEXT, "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updatedAt" TIMESTAMP(3) NOT NULL, CONSTRAINT "Board_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "public"."TaskList" ( "id" SERIAL NOT NULL, "boardId" INTEGER NOT NULL, "name" TEXT NOT NULL, "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updatedAt" TIMESTAMP(3) NOT NULL, CONSTRAINT "TaskList_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "public"."Task" ( "id" SERIAL NOT NULL, "boardId" INTEGER NOT NULL, "taskListId" INTEGER, "title" TEXT NOT NULL, "description" TEXT, "status" "public"."Status" NOT NULL DEFAULT 'todo', "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updatedAt" TIMESTAMP(3) NOT NULL, CONSTRAINT "Task_pkey" PRIMARY KEY ("id") ); -- CreateIndex CREATE UNIQUE INDEX "User_email_key" ON "public"."User"("email"); -- AddForeignKey ALTER TABLE "public"."Board" ADD CONSTRAINT "Board_userId_fkey" FOREIGN KEY ("userId") REFERENCES "public"."User"("id") ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "public"."TaskList" ADD CONSTRAINT "TaskList_boardId_fkey" FOREIGN KEY ("boardId") REFERENCES "public"."Board"("id") ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "public"."Task" ADD CONSTRAINT "Task_boardId_fkey" FOREIGN KEY ("boardId") REFERENCES "public"."Board"("id") ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "public"."Task" ADD CONSTRAINT "Task_taskListId_fkey" FOREIGN KEY ("taskListId") REFERENCES "public"."TaskList"("id") ON DELETE SET NULL ON UPDATE CASCADE;