[MAJOR][FINAL] Moved to postgres, loggers added

This commit is contained in:
2025-09-27 19:22:10 +05:30
parent fd7ceca2ef
commit a150c1b379
96 changed files with 689 additions and 1947 deletions

View File

@@ -0,0 +1,68 @@
-- 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;

View File

@@ -0,0 +1,3 @@
# Please do not edit this file manually
# It should be added in your version-control system (e.g., Git)
provider = "postgresql"

View File

@@ -13,3 +13,58 @@ datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
model User {
id Int @id @default(autoincrement())
name String
email String @unique
pwdHash String?
role UserRole @default(Standard)
boards Board[]
}
model Board {
id Int @id @default(autoincrement())
userId Int
name String
description String?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
user User @relation(fields: [userId], references: [id])
tasks Task[]
taskLists TaskList[]
}
model TaskList {
id Int @id @default(autoincrement())
boardId Int
name String
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
board Board @relation(fields: [boardId], references: [id])
tasks Task[]
}
model Task {
id Int @id @default(autoincrement())
boardId Int
taskListId Int?
title String
description String?
status Status @default(todo)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
board Board @relation(fields: [boardId], references: [id])
taskList TaskList? @relation(fields: [taskListId], references: [id])
}
enum UserRole {
Standard
Admin
}
enum Status {
todo
in_progress
done
}