generator client { provider = "prisma-client-js" } 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.VarChar(255) auditCreatedDate DateTime? @db.DateTime(0) } model user { userID Int @id @default(autoincrement()) userSecretKey String? @db.VarChar(255) userUsername String? @unique(map: "userUsername") @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) chat chat[] project project[] project_permission project_permission[] thread thread[] 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) project_permission project_permission[] 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) assistant assistant[] project project[] project_project_projectViewTypeTolookup project[] @relation("project_projectViewTypeTolookup") thread thread[] } 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 assistant { assistantID Int @id @default(autoincrement()) assistantOAIID String? @db.VarChar(255) assistantImg String? @db.VarChar(255) assistantName String? @db.VarChar(255) assistantDescription String? @db.VarChar(255) assistantType Int? assistantStatus String? @db.VarChar(255) assistantVerified Boolean? @db.Bit(1) assistantCreatedDate DateTime? @db.DateTime(0) assistantModifiedDate DateTime? @db.DateTime(0) lookup lookup? @relation(fields: [assistantType], references: [lookupID], onDelete: NoAction, onUpdate: NoAction, map: "assistant_ibfk_1") thread thread[] @@index([assistantType], map: "assistantType") } model chat { chatID Int @id @default(autoincrement()) userID Int? threadID Int? projectID Int? chatOAIMessageID String? @unique(map: "chatOAIMessageID") @db.VarChar(255) chatType String? @db.VarChar(255) chatRole String? @db.VarChar(255) chatMessage String? @db.LongText chatCreatedDate DateTime? @db.DateTime(0) chatModifiedDate DateTime? @db.DateTime(0) user user? @relation(fields: [userID], references: [userID], onDelete: NoAction, onUpdate: NoAction, map: "chat_ibfk_1") thread thread? @relation(fields: [threadID], references: [threadID], onDelete: NoAction, onUpdate: NoAction, map: "chat_ibfk_2") project project? @relation(fields: [projectID], references: [projectID], onDelete: NoAction, onUpdate: NoAction, map: "chat_ibfk_3") chatFile chatFile[] @@index([projectID], map: "projectID") @@index([threadID], map: "threadID") @@index([userID], map: "userID") } model chatFile { chatFileID Int @id @default(autoincrement()) fileID Int? chatID Int? file file? @relation(fields: [fileID], references: [fileID], onDelete: NoAction, onUpdate: NoAction, map: "chatFile_ibfk_1") chat chat? @relation(fields: [chatID], references: [chatID], onDelete: NoAction, onUpdate: NoAction, map: "chatFile_ibfk_2") @@index([chatID], map: "chatID") @@index([fileID], map: "fileID") } model configuration { configurationID Int @id @default(autoincrement()) configurationName String? @db.VarChar(255) configurationCode String? @unique(map: "configurationCode") @db.VarChar(255) configurationType String? @db.VarChar(255) configurationValue String? @db.VarChar(255) configurationCreatedDate DateTime? @db.DateTime(0) configurationModifiedDate DateTime? @db.DateTime(0) } model file { fileID Int @id @default(autoincrement()) fileOAIID String? @unique(map: "fileOAIID") @db.VarChar(255) fileName String? @db.VarChar(255) fileOriginalName String? @db.VarChar(255) fileType String? @db.VarChar(255) fileURL String? @db.VarChar(255) fileBytes Int? fileCreatedDate DateTime? @db.DateTime(0) fileModifiedDate DateTime? @db.DateTime(0) chatFile chatFile[] } /// This model or at least one of its fields has comments in the database, and requires an additional setup for migrations: Read more: https://pris.ly/d/database-comments model project { projectID Int @id @default(autoincrement()) projectUniqueID String @unique(map: "projectUniqueID") @db.VarChar(255) userID Int? projectName String? @db.VarChar(255) projectDescription String? @db.VarChar(255) projectDefault Boolean? @default(dbgenerated("b'0'")) @db.Bit(1) projectType Int? projectPublic Boolean? @db.Bit(1) projectViewType Int? projectCreatedDate DateTime? @db.DateTime(0) projectModifiedDate DateTime? @db.DateTime(0) chat chat[] user user? @relation(fields: [userID], references: [userID], onDelete: NoAction, onUpdate: NoAction, map: "project_ibfk_2") lookup lookup? @relation(fields: [projectType], references: [lookupID], onDelete: NoAction, onUpdate: NoAction, map: "project_ibfk_3") lookup_project_projectViewTypeTolookup lookup? @relation("project_projectViewTypeTolookup", fields: [projectViewType], references: [lookupID], onDelete: NoAction, onUpdate: NoAction, map: "project_ibfk_4") project_permission_project_permission_projectPermissionIDToproject project_permission? @relation("project_permission_projectPermissionIDToproject") project_permission_project_permission_projectIDToproject project_permission[] @relation("project_permission_projectIDToproject") repository repository[] @@index([projectType], map: "projectType") @@index([userID], map: "userID") @@index([projectViewType], map: "projectViewType") } model project_permission { projectPermissionID Int @id @default(autoincrement()) userID Int? roleID Int? projectID Int? projectPermissionStatus String? @db.VarChar(255) projectPermissionCreatedDate DateTime? @db.DateTime(0) projectPermissionModifiedDate DateTime? @db.DateTime(0) project_project_permission_projectPermissionIDToproject project @relation("project_permission_projectPermissionIDToproject", fields: [projectPermissionID], references: [projectID], onDelete: NoAction, onUpdate: NoAction, map: "project_permission_ibfk_1") user user? @relation(fields: [userID], references: [userID], onDelete: NoAction, onUpdate: NoAction, map: "project_permission_ibfk_2") role role? @relation(fields: [roleID], references: [roleID], onDelete: NoAction, onUpdate: NoAction, map: "project_permission_ibfk_3") project_project_permission_projectIDToproject project? @relation("project_permission_projectIDToproject", fields: [projectID], references: [projectID], onDelete: NoAction, onUpdate: NoAction, map: "project_permission_ibfk_4") @@index([projectID], map: "projectID") @@index([roleID], map: "roleID") @@index([userID], map: "userID") } model repository { repositoryID Int @id @default(autoincrement()) projectID Int? repositoryName String? @db.VarChar(255) repositoryDescription String? @db.VarChar(255) repositoryVersion String? @db.VarChar(255) repositoryContent String? @db.LongText repositoryStatus String? @db.VarChar(255) repositoryCreatedDate DateTime? @db.DateTime(0) repositoryModifiedDate DateTime? @db.DateTime(0) project project? @relation(fields: [projectID], references: [projectID], onDelete: NoAction, onUpdate: NoAction, map: "repository_ibfk_1") @@index([projectID], map: "projectID") @@index([repositoryStatus], map: "repositoryStatus") } model thread { threadID Int @id @default(autoincrement()) userID Int? assistantID Int? threadTitle String? @db.VarChar(255) threadOAIID String? @unique(map: "threadOAIID") @db.VarChar(255) threadStatus Int? threadCreatedDate DateTime? @db.DateTime(0) threadModifiedDate DateTime? @db.DateTime(0) chat chat[] assistant assistant? @relation(fields: [assistantID], references: [assistantID], onDelete: NoAction, onUpdate: NoAction, map: "thread_ibfk_1") user user? @relation(fields: [userID], references: [userID], onDelete: NoAction, onUpdate: NoAction, map: "thread_ibfk_2") lookup lookup? @relation(fields: [threadStatus], references: [lookupID], onDelete: NoAction, onUpdate: NoAction, map: "thread_ibfk_3") @@index([assistantID], map: "assistantID") @@index([userID], map: "userID") @@index([threadStatus], map: "threadStatus") }