From f85a213561dfddbf5887cf6b97f648e0b5e0ded3 Mon Sep 17 00:00:00 2001 From: Matthieu Haineault Date: Wed, 30 Jul 2025 13:15:46 -0400 Subject: [PATCH] fix(prisma): small pay-period fix --- .../migration.sql | 54 +++++++++++++ prisma/schema.prisma | 76 +++++++++---------- 2 files changed, 92 insertions(+), 38 deletions(-) create mode 100644 prisma/migrations/20250730171515_consolidate_bank_codes/migration.sql diff --git a/prisma/migrations/20250730171515_consolidate_bank_codes/migration.sql b/prisma/migrations/20250730171515_consolidate_bank_codes/migration.sql new file mode 100644 index 0000000..71d2dbf --- /dev/null +++ b/prisma/migrations/20250730171515_consolidate_bank_codes/migration.sql @@ -0,0 +1,54 @@ +/* + Warnings: + + - You are about to drop the column `expense_code_id` on the `expenses` table. All the data in the column will be lost. + - You are about to drop the column `shift_code_id` on the `shifts` table. All the data in the column will be lost. + - You are about to drop the `expense_codes` table. If the table is not empty, all the data it contains will be lost. + - You are about to drop the `shift_codes` table. If the table is not empty, all the data it contains will be lost. + - Added the required column `bank_code_id` to the `expenses` table without a default value. This is not possible if the table is not empty. + - Added the required column `bank_code_id` to the `leave_requests` table without a default value. This is not possible if the table is not empty. + - Added the required column `bank_code_id` to the `shifts` table without a default value. This is not possible if the table is not empty. + +*/ +-- DropForeignKey +ALTER TABLE "expenses" DROP CONSTRAINT "expenses_expense_code_id_fkey"; + +-- DropForeignKey +ALTER TABLE "shifts" DROP CONSTRAINT "shifts_shift_code_id_fkey"; + +-- AlterTable +ALTER TABLE "expenses" DROP COLUMN "expense_code_id", +ADD COLUMN "bank_code_id" INTEGER NOT NULL; + +-- AlterTable +ALTER TABLE "leave_requests" ADD COLUMN "bank_code_id" INTEGER NOT NULL; + +-- AlterTable +ALTER TABLE "shifts" DROP COLUMN "shift_code_id", +ADD COLUMN "bank_code_id" INTEGER NOT NULL; + +-- DropTable +DROP TABLE "expense_codes"; + +-- DropTable +DROP TABLE "shift_codes"; + +-- CreateTable +CREATE TABLE "bank_codes" ( + "id" SERIAL NOT NULL, + "type" TEXT NOT NULL, + "categorie" TEXT NOT NULL, + "modifier" DOUBLE PRECISION NOT NULL, + "bank_code" TEXT NOT NULL, + + CONSTRAINT "bank_codes_pkey" PRIMARY KEY ("id") +); + +-- AddForeignKey +ALTER TABLE "leave_requests" ADD CONSTRAINT "leave_requests_bank_code_id_fkey" FOREIGN KEY ("bank_code_id") REFERENCES "bank_codes"("id") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "shifts" ADD CONSTRAINT "shifts_bank_code_id_fkey" FOREIGN KEY ("bank_code_id") REFERENCES "bank_codes"("id") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "expenses" ADD CONSTRAINT "expenses_bank_code_id_fkey" FOREIGN KEY ("bank_code_id") REFERENCES "bank_codes"("id") ON DELETE RESTRICT ON UPDATE CASCADE; diff --git a/prisma/schema.prisma b/prisma/schema.prisma index fcca23f..dabd4ce 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -5,7 +5,7 @@ // Try Prisma Accelerate: https://pris.ly/cli/accelerate-init generator client { - provider = "prisma-client-js" + provider = "prisma-client-js" previewFeatures = ["views"] } @@ -26,8 +26,8 @@ model Users { employee Employees? @relation("UserEmployee") customer Customers? @relation("UserCustomer") oauth_access_tokens OAuthAccessTokens[] @relation("UserOAuthAccessToken") - employees_archive EmployeesArchive[] @relation("UsersToEmployeesToArchive") - customer_archive CustomersArchive[] @relation("UserToCustomersToArchive") + employees_archive EmployeesArchive[] @relation("UsersToEmployeesToArchive") + customer_archive CustomersArchive[] @relation("UserToCustomersToArchive") @@map("users") } @@ -41,9 +41,9 @@ model Employees { first_work_day DateTime @db.Date last_work_day DateTime? @db.Date - supervisor Employees? @relation("EmployeeSupervisor", fields: [supervisor_id], references: [id]) - supervisor_id Int? - crew Employees[] @relation("EmployeeSupervisor") + supervisor Employees? @relation("EmployeeSupervisor", fields: [supervisor_id], references: [id]) + supervisor_id Int? + crew Employees[] @relation("EmployeeSupervisor") archive EmployeesArchive[] @relation("EmployeeToArchive") timesheet Timesheets[] @relation("TimesheetEmployee") @@ -54,20 +54,20 @@ model Employees { } model EmployeesArchive { - id Int @id @default(autoincrement()) - employee Employees @relation("EmployeeToArchive", fields: [employee_id], references: [id]) - employee_id Int - archived_at DateTime @default(now()) + id Int @id @default(autoincrement()) + employee Employees @relation("EmployeeToArchive", fields: [employee_id], references: [id]) + employee_id Int + archived_at DateTime @default(now()) - user_id String @db.Uuid - user Users @relation("UsersToEmployeesToArchive",fields: [user_id], references: [id]) - first_name String - last_name String + user_id String @db.Uuid + user Users @relation("UsersToEmployeesToArchive", fields: [user_id], references: [id]) + first_name String + last_name String external_payroll_id Int company_code Int - first_Work_Day DateTime @db.Date - last_work_day DateTime @db.Date + first_Work_Day DateTime @db.Date + last_work_day DateTime @db.Date supervisor_id Int? supervisor Employees? @relation("EmployeeSupervisorToArchive", fields: [supervisor_id], references: [id]) @@ -93,7 +93,7 @@ model CustomersArchive { user_id String @db.Uuid user Users @relation("UserToCustomersToArchive", fields: [user_id], references: [id]) - invoice_id Int? @unique + invoice_id Int? @unique @@map("customers_archive") } @@ -102,7 +102,7 @@ model LeaveRequests { id Int @id @default(autoincrement()) employee Employees @relation("LeaveRequestEmployee", fields: [employee_id], references: [id]) employee_id Int - bank_code BankCodes? @relation("LeaveRequestBankCodes", fields: [bank_code_id], references: [id]) + bank_code BankCodes? @relation("LeaveRequestBankCodes", fields: [bank_code_id], references: [id]) bank_code_id Int leave_type LeaveTypes start_date_time DateTime @db.Date @@ -132,7 +132,7 @@ model LeaveRequestsArchive { //pay-period vue view PayPeriods { - period_number Int + period_number Int @id start_date DateTime @db.Date end_date DateTime @db.Date year Int @@ -166,15 +166,15 @@ model TimesheetsArchive { } model Shifts { - id Int @id @default(autoincrement()) - timesheet Timesheets @relation("ShiftTimesheet", fields: [timesheet_id], references: [id]) - timesheet_id Int - shift_code BankCodes @relation("ShiftBankCodes", fields: [bank_code_id], references: [id]) - bank_code_id Int - description String? - date DateTime @db.Date - start_time DateTime @db.Time(0) - end_time DateTime @db.Time(0) + id Int @id @default(autoincrement()) + timesheet Timesheets @relation("ShiftTimesheet", fields: [timesheet_id], references: [id]) + timesheet_id Int + shift_code BankCodes @relation("ShiftBankCodes", fields: [bank_code_id], references: [id]) + bank_code_id Int + description String? + date DateTime @db.Date + start_time DateTime @db.Time(0) + end_time DateTime @db.Time(0) archive ShiftsArchive[] @relation("ShiftsToArchive") @@ -197,30 +197,30 @@ model ShiftsArchive { } model BankCodes { - id Int @id @default(autoincrement()) + id Int @id @default(autoincrement()) type String categorie String modifier Float bank_code String - shifts Shifts[] @relation("ShiftBankCodes") - expenses Expenses[] @relation("ExpenseBankCodes") - leaveRequests LeaveRequests[] @relation("LeaveRequestBankCodes") + shifts Shifts[] @relation("ShiftBankCodes") + expenses Expenses[] @relation("ExpenseBankCodes") + leaveRequests LeaveRequests[] @relation("LeaveRequestBankCodes") @@map("bank_codes") } model Expenses { - id Int @id @default(autoincrement()) - timesheet Timesheets @relation("ExpensesTimesheet", fields: [timesheet_id], references: [id]) + id Int @id @default(autoincrement()) + timesheet Timesheets @relation("ExpensesTimesheet", fields: [timesheet_id], references: [id]) timesheet_id Int - bank_code BankCodes @relation("ExpenseBankCodes", fields: [bank_code_id], references: [id]) + bank_code BankCodes @relation("ExpenseBankCodes", fields: [bank_code_id], references: [id]) bank_code_id Int - date DateTime @db.Date - amount Decimal @db.Money + date DateTime @db.Date + amount Decimal @db.Money attachement String? description String? - is_approved Boolean @default(false) + is_approved Boolean @default(false) supervisor_comment String? archive ExpensesArchive[] @relation("ExpensesToArchive")