generator client { provider = "prisma-client-js" output = "../generated/prisma" } datasource db { provider = "postgresql" url = env("DATABASE_URL") } enum Role { USER ADMIN SUPER_ADMIN DEVELOPER } enum App{ desa_plus hipmi } enum BugSource{ QC SYSTEM USER } enum BugStatus{ OPEN ON_HOLD IN_PROGRESS RESOLVED RELEASED CLOSED } enum LogType{ CREATE UPDATE DELETE LOGIN LOGOUT } model User { id String @id @default(uuid()) name String email String @unique password String role Role @default(USER) active Boolean @default(true) image String? createdAt DateTime @default(now()) updatedAt DateTime @updatedAt sessions Session[] logs Log[] bugs Bug[] bugLogs BugLog[] @@map("user") } model Session { id String @id @default(uuid()) token String @unique userId String expiresAt DateTime createdAt DateTime @default(now()) user User @relation(fields: [userId], references: [id], onDelete: Cascade) @@index([token]) @@map("session") } model Log { id String @id @default(uuid()) userId String type LogType message String createdAt DateTime @default(now()) user User @relation(fields: [userId], references: [id]) @@map("log") } model Bug { id String @id @default(uuid()) userId String? app App affectedVersion String device String os String status BugStatus source BugSource description String stackTrace String? fixedVersion String? feedBack String? createdAt DateTime @default(now()) updatedAt DateTime @updatedAt user User? @relation(fields: [userId], references: [id]) images BugImage[] logs BugLog[] @@map("bug") } model BugImage { id String @id @default(uuid()) bugId String imageUrl String createdAt DateTime @default(now()) bug Bug @relation(fields: [bugId], references: [id], onDelete: Cascade) @@map("bug_image") } model BugLog { id String @id @default(uuid()) bugId String userId String? status BugStatus description String createdAt DateTime @default(now()) bug Bug @relation(fields: [bugId], references: [id], onDelete: Cascade) user User? @relation(fields: [userId], references: [id], onDelete: Cascade) @@map("bug_log") }