From f8022087d4a0c5c1b5cceb77facee8f22347d5a9 Mon Sep 17 00:00:00 2001 From: Matthieu Haineault Date: Mon, 28 Jul 2025 12:20:42 -0400 Subject: [PATCH] fix(prisma): added supervisor/employee column to Employees --- prisma/schema.prisma | 108 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 104 insertions(+), 4 deletions(-) diff --git a/prisma/schema.prisma b/prisma/schema.prisma index ad27041..64173de 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -38,21 +38,54 @@ model Employees { first_work_day DateTime last_work_day DateTime? - timesheet Timesheets[] @relation("TimesheetEmployee") - leave_request LeaveRequests[] @relation("LeaveRequestEmployee") + supervisor Employees? @relation("EmployeeSupervisor", fields: [supervisor_id], references: [id]) + supervisor_id Int? + managed_employees Employees[] @relation("EmployeeSupervisor") + + archive EmployeesArchive[] @relation("EmployeeToArchives") + timesheet Timesheets[] @relation("TimesheetEmployee") + leave_request LeaveRequests[] @relation("LeaveRequestEmployee") @@map("employees") } +model EmployeesArchive { + id Int @id @default(autoincrement()) + employee Employees @relation("EmployeeToArchives", fields: [employee_id], references: [id]) + employee_id Int + archived_at DateTime @default(now()) + user_id String @db.Uuid + external_payroll_id Int + company_code Int + firstWorkDay DateTime + last_work_day DateTime + supervisor_id Int? + + @@map("employees_archive") +} + model Customers { id Int @id @default(autoincrement()) user Users @relation("UserCustomer", fields: [user_id], references: [id]) user_id String @unique @db.Uuid invoice_id Int? @unique + archive CustomersArchive[] @relation("CustomerToArchives") + @@map("customers") } +model CustomersArchive { + id Int @id @default(autoincrement()) + customer Customers @relation("CustomerToArchives", fields: [customer_id], references: [id]) + customer_id Int + archived_at DateTime @default(now()) + user_id String @db.Uuid + invoice_id String @unique + + @@map("customers_archive") +} + model LeaveRequests { id Int @id @default(autoincrement()) employee Employees @relation("LeaveRequestEmployee", fields: [employee_id], references: [id]) @@ -63,9 +96,26 @@ model LeaveRequests { comment String approval_status LeaveApprovalStatus @default(PENDING) + archive LeaveRequestsArchive[] @relation("LeaveRequestToArchives") + @@map("leave_requests") } +model LeaveRequestsArchive { + id Int @id @default(autoincrement()) + leave_request LeaveRequests @relation("LeaveRequestToArchives", fields: [leave_request_id], references: [id]) + leave_request_id Int + archived_at DateTime @default(now()) + employee_id Int + leave_type LeaveTypes + start_date_time DateTime + end_date_time DateTime? + comment String + approval_status LeaveApprovalStatus + + @@map("leave_requests_archive") +} + //pay-period vue model PayPeriods { period_number Int @id @@ -83,12 +133,24 @@ model Timesheets { employee_id Int is_approved Boolean @default(false) - shift Shifts[] @relation("ShiftTimesheet") - expense Expenses[] @relation("ExpensesTimesheet") + shift Shifts[] @relation("ShiftTimesheet") + expense Expenses[] @relation("ExpensesTimesheet") + archive TimesheetsArchive[] @relation("TimesheetsToArchives") @@map("timesheets") } +model TimesheetsArchive { + id Int @id @default(autoincrement()) + timesheet Timesheets @relation("TimesheetsToArchives", fields: [timesheet_id], references: [id]) + timesheet_id Int + archive_at DateTime @default(now()) + employee_id Int + is_approved Boolean + + @@map("timesheets_archive") +} + model Shifts { id Int @id @default(autoincrement()) timesheet Timesheets @relation("ShiftTimesheet", fields: [timesheet_id], references: [id]) @@ -100,9 +162,26 @@ model Shifts { start_time DateTime end_time DateTime + archive ShiftsArchive[] @relation("ShiftsToArchives") + @@map("shifts") } +model ShiftsArchive { + id Int @id @default(autoincrement()) + shift Shifts @relation("ShiftsToArchives", fields: [shift_id], references: [id]) + shift_id Int + archive_at DateTime + timesheet_id Int + shift_code_id Int + description String? + date DateTime + start_time DateTime + end_time DateTime + + @@map("shifts_archive") +} + model ShiftCodes { id Int @id @default(autoincrement()) shift_type String @@ -125,6 +204,25 @@ model Expenses { description String? is_approved Boolean @default(false) supervisor_comment String? + + archive ExpensesArchive[] @relation("ExpensesToArchive") + + @@map("expenses") +} + +model ExpensesArchive { + id Int @id @default(autoincrement()) + expense Expenses @relation("ExpensesToArchive", fields: [expense_id], references: [id]) + expense_id Int + timesheet_id Int + archived_at DateTime + amount Float + attachement String? + description String? + is_approved Boolean + supervisor_comment String? + + @@map("expenses_archive") } model ExpenseCodes { @@ -133,6 +231,8 @@ model ExpenseCodes { bank_code String expense Expenses[] @relation("ExpenseExpenseCode") + + @@map("expense_codes") } model OAuthAccessTokens {