fix(prisma): small pay-period fix

This commit is contained in:
Matthieu Haineault 2025-07-30 13:15:46 -04:00
parent ec98adbcc3
commit f85a213561
2 changed files with 92 additions and 38 deletions

View File

@ -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;

View File

@ -5,7 +5,7 @@
// Try Prisma Accelerate: https://pris.ly/cli/accelerate-init // Try Prisma Accelerate: https://pris.ly/cli/accelerate-init
generator client { generator client {
provider = "prisma-client-js" provider = "prisma-client-js"
previewFeatures = ["views"] previewFeatures = ["views"]
} }
@ -26,8 +26,8 @@ model Users {
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")
employees_archive EmployeesArchive[] @relation("UsersToEmployeesToArchive") employees_archive EmployeesArchive[] @relation("UsersToEmployeesToArchive")
customer_archive CustomersArchive[] @relation("UserToCustomersToArchive") customer_archive CustomersArchive[] @relation("UserToCustomersToArchive")
@@map("users") @@map("users")
} }
@ -41,9 +41,9 @@ model Employees {
first_work_day DateTime @db.Date first_work_day DateTime @db.Date
last_work_day DateTime? @db.Date last_work_day DateTime? @db.Date
supervisor Employees? @relation("EmployeeSupervisor", fields: [supervisor_id], references: [id]) supervisor Employees? @relation("EmployeeSupervisor", fields: [supervisor_id], references: [id])
supervisor_id Int? supervisor_id Int?
crew Employees[] @relation("EmployeeSupervisor") crew Employees[] @relation("EmployeeSupervisor")
archive EmployeesArchive[] @relation("EmployeeToArchive") archive EmployeesArchive[] @relation("EmployeeToArchive")
timesheet Timesheets[] @relation("TimesheetEmployee") timesheet Timesheets[] @relation("TimesheetEmployee")
@ -54,20 +54,20 @@ model Employees {
} }
model EmployeesArchive { model EmployeesArchive {
id Int @id @default(autoincrement()) id Int @id @default(autoincrement())
employee Employees @relation("EmployeeToArchive", fields: [employee_id], references: [id]) employee Employees @relation("EmployeeToArchive", fields: [employee_id], references: [id])
employee_id Int employee_id Int
archived_at DateTime @default(now()) archived_at DateTime @default(now())
user_id String @db.Uuid user_id String @db.Uuid
user Users @relation("UsersToEmployeesToArchive",fields: [user_id], references: [id]) user Users @relation("UsersToEmployeesToArchive", fields: [user_id], references: [id])
first_name String first_name String
last_name String last_name String
external_payroll_id Int external_payroll_id Int
company_code Int company_code Int
first_Work_Day DateTime @db.Date first_Work_Day DateTime @db.Date
last_work_day DateTime @db.Date last_work_day DateTime @db.Date
supervisor_id Int? supervisor_id Int?
supervisor Employees? @relation("EmployeeSupervisorToArchive", fields: [supervisor_id], references: [id]) supervisor Employees? @relation("EmployeeSupervisorToArchive", fields: [supervisor_id], references: [id])
@ -93,7 +93,7 @@ model CustomersArchive {
user_id String @db.Uuid user_id String @db.Uuid
user Users @relation("UserToCustomersToArchive", fields: [user_id], references: [id]) user Users @relation("UserToCustomersToArchive", fields: [user_id], references: [id])
invoice_id Int? @unique invoice_id Int? @unique
@@map("customers_archive") @@map("customers_archive")
} }
@ -102,7 +102,7 @@ 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
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 bank_code_id Int
leave_type LeaveTypes leave_type LeaveTypes
start_date_time DateTime @db.Date start_date_time DateTime @db.Date
@ -132,7 +132,7 @@ model LeaveRequestsArchive {
//pay-period vue //pay-period vue
view PayPeriods { view PayPeriods {
period_number Int period_number Int @id
start_date DateTime @db.Date start_date DateTime @db.Date
end_date DateTime @db.Date end_date DateTime @db.Date
year Int year Int
@ -166,15 +166,15 @@ model TimesheetsArchive {
} }
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 BankCodes @relation("ShiftBankCodes", fields: [bank_code_id], references: [id]) shift_code BankCodes @relation("ShiftBankCodes", fields: [bank_code_id], references: [id])
bank_code_id Int bank_code_id Int
description String? description String?
date DateTime @db.Date date DateTime @db.Date
start_time DateTime @db.Time(0) start_time DateTime @db.Time(0)
end_time DateTime @db.Time(0) end_time DateTime @db.Time(0)
archive ShiftsArchive[] @relation("ShiftsToArchive") archive ShiftsArchive[] @relation("ShiftsToArchive")
@ -197,30 +197,30 @@ model ShiftsArchive {
} }
model BankCodes { model BankCodes {
id Int @id @default(autoincrement()) id Int @id @default(autoincrement())
type String type String
categorie String categorie String
modifier Float modifier Float
bank_code String bank_code String
shifts Shifts[] @relation("ShiftBankCodes") shifts Shifts[] @relation("ShiftBankCodes")
expenses Expenses[] @relation("ExpenseBankCodes") expenses Expenses[] @relation("ExpenseBankCodes")
leaveRequests LeaveRequests[] @relation("LeaveRequestBankCodes") leaveRequests LeaveRequests[] @relation("LeaveRequestBankCodes")
@@map("bank_codes") @@map("bank_codes")
} }
model Expenses { model Expenses {
id Int @id @default(autoincrement()) id Int @id @default(autoincrement())
timesheet Timesheets @relation("ExpensesTimesheet", fields: [timesheet_id], references: [id]) timesheet Timesheets @relation("ExpensesTimesheet", fields: [timesheet_id], references: [id])
timesheet_id Int 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 bank_code_id Int
date DateTime @db.Date date DateTime @db.Date
amount Decimal @db.Money amount Decimal @db.Money
attachement String? attachement String?
description String? description String?
is_approved Boolean @default(false) is_approved Boolean @default(false)
supervisor_comment String? supervisor_comment String?
archive ExpensesArchive[] @relation("ExpensesToArchive") archive ExpensesArchive[] @relation("ExpensesToArchive")