generator client { provider = "prisma-client-js" } generator jsonSchema { provider = "prisma-json-schema-generator" output = "./json" } datasource db { provider = "mysql" url = env("DATABASE_URL") } model audit { auditID Int @id @default(autoincrement()) auditIP String? @db.VarChar(255) auditURL String? @db.VarChar(255) auditURLMethod String? @db.VarChar(255) auditURLPayload String? @db.Text auditCreatedDate DateTime? @default(now()) @db.DateTime(0) auditAction String? @db.VarChar(255) auditDetails String? @db.Text auditUserID Int? auditUsername String? @db.VarChar(255) user user? @relation(fields: [auditUserID], references: [userID]) @@index([auditUserID], map: "FK_audit_user") } model user { userID Int @id @default(autoincrement()) userSecretKey String? @db.VarChar(255) userUsername String? @db.VarChar(255) userPassword String? @db.VarChar(255) userFullName String? @db.VarChar(255) userEmail String? @db.VarChar(255) userPhone String? @db.VarChar(255) userStatus String? @db.VarChar(255) userCreatedDate DateTime? @db.DateTime(0) userModifiedDate DateTime? @db.DateTime(0) audit audit[] forms form[] @relation("FormCreator") processes process[] @relation("ProcessCreator") assignedTasks task[] @relation("TaskAssignee") userrole userrole[] } model role { roleID Int @id @default(autoincrement()) roleName String? @db.VarChar(255) roleDescription String? @db.VarChar(255) roleStatus String? @db.VarChar(255) roleCreatedDate DateTime? @db.DateTime(0) roleModifiedDate DateTime? @db.DateTime(0) userrole userrole[] } model lookup { lookupID Int @id @default(autoincrement()) lookupOrder Int? lookupTitle String? @db.VarChar(255) lookupRefCode String? @db.VarChar(255) lookupValue String? @db.VarChar(255) lookupType String? @db.VarChar(255) lookupStatus String? @db.VarChar(255) lookupCreatedDate DateTime? @db.DateTime(0) lookupModifiedDate DateTime? @db.DateTime(0) } model userrole { userRoleID Int @id @default(autoincrement()) userRoleUserID Int @default(0) userRoleRoleID Int @default(0) userRoleCreatedDate DateTime @db.DateTime(0) role role @relation(fields: [userRoleRoleID], references: [roleID], onDelete: NoAction, onUpdate: NoAction, map: "FK_userrole_role") user user @relation(fields: [userRoleUserID], references: [userID], onDelete: NoAction, onUpdate: NoAction, map: "FK_userrole_user") @@index([userRoleRoleID], map: "FK_userrole_role") @@index([userRoleUserID], map: "FK_userrole_user") } model form { formID Int @id @default(autoincrement()) formUUID String @unique @db.VarChar(36) formName String @db.VarChar(255) formDescription String? @db.Text formComponents Json formStatus String @default("active") @db.VarChar(50) formCreatedBy Int? formCreatedDate DateTime @default(now()) @db.DateTime(0) formModifiedDate DateTime? @updatedAt @db.DateTime(0) creator user? @relation("FormCreator", fields: [formCreatedBy], references: [userID]) formTasks task[] @relation("FormTask") @@index([formCreatedBy], map: "FK_form_creator") } model process { processID Int @id @default(autoincrement()) processUUID String @unique @db.VarChar(36) processName String @db.VarChar(255) processDescription String? @db.Text processDefinition Json processVersion Int @default(1) processStatus String @default("draft") @db.VarChar(50) processCreatedBy Int? processCreatedDate DateTime @default(now()) @db.DateTime(0) processModifiedDate DateTime? @updatedAt @db.DateTime(0) creator user? @relation("ProcessCreator", fields: [processCreatedBy], references: [userID]) tasks task[] @@index([processCreatedBy], map: "FK_process_creator") } model task { taskID Int @id @default(autoincrement()) taskUUID String @unique @db.VarChar(36) taskNodeId String @db.VarChar(255) taskName String @db.VarChar(255) taskType String @db.VarChar(50) taskData Json? taskProcessId Int taskFormId Int? taskAssigneeId Int? taskStatus String @default("pending") @db.VarChar(50) taskCreatedDate DateTime @default(now()) @db.DateTime(0) taskModifiedDate DateTime? @updatedAt @db.DateTime(0) assignee user? @relation("TaskAssignee", fields: [taskAssigneeId], references: [userID]) form form? @relation("FormTask", fields: [taskFormId], references: [formID]) process process @relation(fields: [taskProcessId], references: [processID]) @@index([taskProcessId], map: "FK_task_process") @@index([taskFormId], map: "FK_task_form") @@index([taskAssigneeId], map: "FK_task_assignee") }