feat(schema): added missing model to prisma schema

This commit is contained in:
Matthieu Haineault 2025-07-23 15:56:47 -04:00
parent 2feac880e3
commit 2cebcc5df9
2 changed files with 84 additions and 64 deletions

6
package-lock.json generated
View File

@ -6615,9 +6615,9 @@
} }
}, },
"node_modules/form-data": { "node_modules/form-data": {
"version": "4.0.3", "version": "4.0.4",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.3.tgz", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz",
"integrity": "sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA==", "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"asynckit": "^0.4.0", "asynckit": "^0.4.0",

View File

@ -14,50 +14,49 @@ datasource db {
} }
model Users { model Users {
id String @id @default(dbgenerated("gen_random_uuid()")) @db.Uuid id String @id @default(dbgenerated("gen_random_uuid()")) @db.Uuid
first_name String first_name String
last_name String last_name String
email String @unique email String @unique
phone_number Int @unique phone_number Int @unique
residence String? residence String?
role Roles @default(GUEST) role Roles @default(GUEST)
employee Employees? @relation("UserEmployee")
employee Employees? @relation("UserEmployee") customer Customers? @relation("UserCustomer")
customer Customers? @relation("UserCustomer") oauth_access_tokens OAuthAccessTokens[] @relation("UserOAuthAccessToken")
oauth_access_tokens OAuthAccessTokens[] @relation("UserOAuthAccessToken")
@@map("users") @@map("users")
} }
model Employees { model Employees {
id Int @id @default(autoincrement()) id Int @id @default(autoincrement())
user Users @relation("UserEmployee", fields: [user_id], references:[id]) user Users @relation("UserEmployee", fields: [user_id], references: [id])
user_id String @unique @db.Uuid user_id String @unique @db.Uuid
external_payroll_id Int external_payroll_id Int
company_code Int company_code Int
first_work_day DateTime first_work_day DateTime
last_work_day DateTime? last_work_day DateTime?
timesheet Timesheets[] @relation("TimesheetEmployee") timesheet Timesheets[] @relation("TimesheetEmployee")
leave_request LeaveRequests[] @relation("LeaveRequestEmployee") leave_request LeaveRequests[] @relation("LeaveRequestEmployee")
@@map("employees") @@map("employees")
} }
model Customers { model Customers {
id Int @id @default(autoincrement()) id Int @id @default(autoincrement())
user Users @relation("UserCustomer", fields: [user_id], references:[id]) user Users @relation("UserCustomer", fields: [user_id], references: [id])
user_id String @unique @db.Uuid user_id String @unique @db.Uuid
invoice_id Int? @unique invoice_id Int? @unique
@@map("customers") @@map("customers")
} }
model LeaveRequests { model LeaveRequests {
id Int @id @default(autoincrement()) id Int @id @default(autoincrement())
employee Employees @relation("LeaveRequestEmployee", fields: [employee_id], references:[id]) employee Employees @relation("LeaveRequestEmployee", fields: [employee_id], references: [id])
employee_id Int employee_id Int
leave_type LeaveTypes leave_type LeaveTypes
start_date_time DateTime start_date_time DateTime
end_date_time DateTime? end_date_time DateTime?
@ -68,23 +67,23 @@ model LeaveRequests {
} }
model Timesheets { model Timesheets {
id Int @id @default(autoincrement()) id Int @id @default(autoincrement())
employee Employees @relation("TimesheetEmployee", fields: [employee_id], references:[id]) employee Employees @relation("TimesheetEmployee", fields: [employee_id], references: [id])
employee_id Int employee_id Int
is_approved Boolean @default(false) is_approved Boolean @default(false)
shift Shifts[] @relation("ShiftTimesheet")
shift Shifts[] @relation("ShiftTimesheet") expense Expenses[] @relation("ExpensesTimesheet")
@@map("timesheets") @@map("timesheets")
} }
model Shifts { model Shifts {
id Int @id @default(autoincrement()) id Int @id @default(autoincrement())
timesheet Timesheets @relation("ShiftTimesheet", fields: [timesheet_id], references: [id]) timesheet Timesheets @relation("ShiftTimesheet", fields: [timesheet_id], references: [id])
timesheet_id Int timesheet_id Int
shift_code ShiftCodes @relation("ShiftShiftCode", fields: [shift_code_id], references: [id]) shift_code ShiftCodes @relation("ShiftShiftCode", fields: [shift_code_id], references: [id])
shift_code_id Int shift_code_id Int
date DateTime date DateTime
start_time DateTime start_time DateTime
end_time DateTime end_time DateTime
@ -93,29 +92,50 @@ model Shifts {
} }
model ShiftCodes { model ShiftCodes {
id Int @id @default(autoincrement()) id Int @id @default(autoincrement())
shift_type String shift_type String
bank_code String bank_code String
shift Shifts[] @relation("ShiftShiftCode")
shift Shifts[] @relation("ShiftShiftCode")
@@map("shift_codes") @@map("shift_codes")
} }
model Expenses {
id Int @id @default(autoincrement())
timesheet Timesheets @relation("ExpensesTimesheet", fields: [timesheet_id], references: [id])
timesheet_id Int
expense_code ExpenseCodes @relation("ExpenseExpenseCode", fields: [expense_code_id], references: [id])
expense_code_id Int
date DateTime
amount Float
attachement String?
description String?
is_approved Boolean @default(false)
supervisor_comment String?
}
model ExpenseCodes {
id Int @id @default(autoincrement())
expense_type String
bank_code String
expense Expenses[] @relation("ExpenseExpenseCode")
}
model OAuthAccessTokens { model OAuthAccessTokens {
id String @id @default(cuid()) id String @id @default(cuid())
user Users @relation("UserOAuthAccessToken", fields: [user_id], references: [id]) user Users @relation("UserOAuthAccessToken", fields: [user_id], references: [id])
user_id String @db.Uuid user_id String @db.Uuid
application String application String
access_token String @unique access_token String @unique
refresh_token String @unique refresh_token String @unique
access_token_expiry DateTime access_token_expiry DateTime
refresh_token_expiry DateTime? refresh_token_expiry DateTime?
is_revoked Boolean @default(false) is_revoked Boolean @default(false)
scopes Json @default("[]") scopes Json @default("[]")
created_at DateTime @default(now()) created_at DateTime @default(now())
updated_at DateTime? updated_at DateTime?
@@map("refresh_tokens") @@map("refresh_tokens")
} }
@ -134,12 +154,12 @@ enum Roles {
} }
enum LeaveTypes { enum LeaveTypes {
SICK // maladie ou repos SICK // maladie ou repos
VACATION // paye VACATION // paye
UNPAID // non-paye UNPAID // non-paye
BEREAVEMENT // deuil de famille BEREAVEMENT // deuil de famille
PARENTAL // maternite/paternite/adoption PARENTAL // maternite/paternite/adoption
LEGAL // obligations legales comme devoir de juree LEGAL // obligations legales comme devoir de juree
@@map("leave_types") @@map("leave_types")
} }
@ -152,4 +172,4 @@ enum LeaveApprovalStatus {
ESCALATED ESCALATED
@@map("leave_approval_status") @@map("leave_approval_status")
} }