diff --git a/package-lock.json b/package-lock.json index 01ac1f2..e1e33bd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6615,9 +6615,9 @@ } }, "node_modules/form-data": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.3.tgz", - "integrity": "sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", + "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", "dev": true, "dependencies": { "asynckit": "^0.4.0", diff --git a/prisma/schema.prisma b/prisma/schema.prisma index cfb79d2..a7bb477 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -14,50 +14,49 @@ datasource db { } model Users { - id String @id @default(dbgenerated("gen_random_uuid()")) @db.Uuid - first_name String - last_name String - email String @unique - phone_number Int @unique - residence String? - role Roles @default(GUEST) + id String @id @default(dbgenerated("gen_random_uuid()")) @db.Uuid + first_name String + last_name String + email String @unique + phone_number Int @unique + residence String? + role Roles @default(GUEST) - - employee Employees? @relation("UserEmployee") - customer Customers? @relation("UserCustomer") - oauth_access_tokens OAuthAccessTokens[] @relation("UserOAuthAccessToken") + employee Employees? @relation("UserEmployee") + customer Customers? @relation("UserCustomer") + oauth_access_tokens OAuthAccessTokens[] @relation("UserOAuthAccessToken") @@map("users") } model Employees { - id Int @id @default(autoincrement()) - user Users @relation("UserEmployee", fields: [user_id], references:[id]) - user_id String @unique @db.Uuid - external_payroll_id Int - company_code Int - first_work_day DateTime - last_work_day DateTime? + id Int @id @default(autoincrement()) + user Users @relation("UserEmployee", fields: [user_id], references: [id]) + user_id String @unique @db.Uuid + external_payroll_id Int + company_code Int + first_work_day DateTime + last_work_day DateTime? - timesheet Timesheets[] @relation("TimesheetEmployee") - leave_request LeaveRequests[] @relation("LeaveRequestEmployee") + timesheet Timesheets[] @relation("TimesheetEmployee") + leave_request LeaveRequests[] @relation("LeaveRequestEmployee") @@map("employees") } 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 + id Int @id @default(autoincrement()) + user Users @relation("UserCustomer", fields: [user_id], references: [id]) + user_id String @unique @db.Uuid + invoice_id Int? @unique @@map("customers") } model LeaveRequests { id Int @id @default(autoincrement()) - employee Employees @relation("LeaveRequestEmployee", fields: [employee_id], references:[id]) - employee_id Int + employee Employees @relation("LeaveRequestEmployee", fields: [employee_id], references: [id]) + employee_id Int leave_type LeaveTypes start_date_time DateTime end_date_time DateTime? @@ -68,23 +67,23 @@ model LeaveRequests { } model Timesheets { - id Int @id @default(autoincrement()) - employee Employees @relation("TimesheetEmployee", fields: [employee_id], references:[id]) - employee_id Int - is_approved Boolean @default(false) + id Int @id @default(autoincrement()) + employee Employees @relation("TimesheetEmployee", fields: [employee_id], references: [id]) + employee_id Int + is_approved Boolean @default(false) - - shift Shifts[] @relation("ShiftTimesheet") + shift Shifts[] @relation("ShiftTimesheet") + expense Expenses[] @relation("ExpensesTimesheet") @@map("timesheets") } model Shifts { - id Int @id @default(autoincrement()) - timesheet Timesheets @relation("ShiftTimesheet", fields: [timesheet_id], references: [id]) - timesheet_id Int - shift_code ShiftCodes @relation("ShiftShiftCode", fields: [shift_code_id], references: [id]) - shift_code_id Int + id Int @id @default(autoincrement()) + timesheet Timesheets @relation("ShiftTimesheet", fields: [timesheet_id], references: [id]) + timesheet_id Int + shift_code ShiftCodes @relation("ShiftShiftCode", fields: [shift_code_id], references: [id]) + shift_code_id Int date DateTime start_time DateTime end_time DateTime @@ -93,29 +92,50 @@ model Shifts { } model ShiftCodes { - id Int @id @default(autoincrement()) - shift_type String - bank_code String + id Int @id @default(autoincrement()) + shift_type String + bank_code String - - shift Shifts[] @relation("ShiftShiftCode") + shift Shifts[] @relation("ShiftShiftCode") @@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 { - id String @id @default(cuid()) - user Users @relation("UserOAuthAccessToken", fields: [user_id], references: [id]) - user_id String @db.Uuid - application String - access_token String @unique - refresh_token String @unique - access_token_expiry DateTime - refresh_token_expiry DateTime? - is_revoked Boolean @default(false) - scopes Json @default("[]") - created_at DateTime @default(now()) - updated_at DateTime? + id String @id @default(cuid()) + user Users @relation("UserOAuthAccessToken", fields: [user_id], references: [id]) + user_id String @db.Uuid + application String + access_token String @unique + refresh_token String @unique + access_token_expiry DateTime + refresh_token_expiry DateTime? + is_revoked Boolean @default(false) + scopes Json @default("[]") + created_at DateTime @default(now()) + updated_at DateTime? @@map("refresh_tokens") } @@ -134,12 +154,12 @@ enum Roles { } enum LeaveTypes { - SICK // maladie ou repos - VACATION // paye - UNPAID // non-paye - BEREAVEMENT // deuil de famille - PARENTAL // maternite/paternite/adoption - LEGAL // obligations legales comme devoir de juree + SICK // maladie ou repos + VACATION // paye + UNPAID // non-paye + BEREAVEMENT // deuil de famille + PARENTAL // maternite/paternite/adoption + LEGAL // obligations legales comme devoir de juree @@map("leave_types") } @@ -152,4 +172,4 @@ enum LeaveApprovalStatus { ESCALATED @@map("leave_approval_status") -} \ No newline at end of file +}