From e178c7bd102a20ca7804c9fa3f3cf40668f93fcb Mon Sep 17 00:00:00 2001 From: Matthieu Haineault Date: Mon, 16 Mar 2026 07:40:25 -0400 Subject: [PATCH] feat(schema): added columns and enum for overtime management. Also added the respective columns in the DB itself. Also added ticket and ticket_management in user_module_access in the db/schema --- prisma/postgres/schema.prisma | 56 ++++++++++++++++++++--------------- 1 file changed, 32 insertions(+), 24 deletions(-) diff --git a/prisma/postgres/schema.prisma b/prisma/postgres/schema.prisma index 74749f9..065dd83 100644 --- a/prisma/postgres/schema.prisma +++ b/prisma/postgres/schema.prisma @@ -26,17 +26,17 @@ model Users { } model Notifications { - id Int @id @default(autoincrement()) - user_id String @unique @db.Uuid - affected_module Modules - subject String - description String - metadata Json @db.JsonB - created_at DateTime @default(now()) - viewed_at DateTime? - user Users @relation("UserNotification", fields: [user_id], references: [id]) + id Int @id @default(autoincrement()) + user_id String @unique @db.Uuid + affected_module Modules + subject String + description String + metadata Json @db.JsonB + created_at DateTime @default(now()) + viewed_at DateTime? + user Users @relation("UserNotification", fields: [user_id], references: [id]) - @@map("notifications") + @@map("notifications") } model userModuleAccess { @@ -49,31 +49,33 @@ model userModuleAccess { personal_profile Boolean @default(true) dashboard Boolean @default(true) chatbot Boolean @default(false) + ticket Boolean @default(false) + ticket_management Boolean @default(false) user Users @relation("UserModuleAccess", fields: [user_id], references: [id]) @@map("user_module_access") } model Employees { - id Int @id @default(autoincrement()) - user_id String @unique @db.Uuid + id Int @id @default(autoincrement()) + user_id String @unique @db.Uuid external_payroll_id Int company_code Int - daily_expected_hours Int - first_work_day DateTime @db.Date - last_work_day DateTime? @db.Date + daily_expected_hours Int @default(24) + first_work_day DateTime @db.Date + last_work_day DateTime? @db.Date supervisor_id Int? job_title String? - is_supervisor Boolean @default(false) - // banked_hour_limit Int @default(0) //will need to be implemented in the future + is_supervisor Boolean @default(false) + applicable_overtime ApplicableOvertime[] @default([WEEKLY]) schedule_preset_id Int? - schedule_preset SchedulePresets? @relation("EmployeesSchedulePreset", fields: [schedule_preset_id], references: [id]) - supervisor Employees? @relation("EmployeeSupervisor", fields: [supervisor_id], references: [id]) - crew Employees[] @relation("EmployeeSupervisor") - user Users @relation("UserEmployee", fields: [user_id], references: [id]) - leave_request LeaveRequests[] @relation("LeaveRequestEmployee") - timesheet Timesheets[] @relation("TimesheetEmployee") - paid_time_off PaidTimeOff? @relation("EmployeePaidTimeOff") + schedule_preset SchedulePresets? @relation("EmployeesSchedulePreset", fields: [schedule_preset_id], references: [id]) + supervisor Employees? @relation("EmployeeSupervisor", fields: [supervisor_id], references: [id]) + crew Employees[] @relation("EmployeeSupervisor") + user Users @relation("UserEmployee", fields: [user_id], references: [id]) + leave_request LeaveRequests[] @relation("LeaveRequestEmployee") + timesheet Timesheets[] @relation("TimesheetEmployee") + paid_time_off PaidTimeOff? @relation("EmployeePaidTimeOff") @@map("employees") } @@ -383,3 +385,9 @@ enum Weekday { FRI SAT } + +enum ApplicableOvertime { + DAILY + WEEKLY + PAYPERIOD +}