
/* !!! This is code generated by Prisma. Do not edit directly. !!! */
/* eslint-disable */
// biome-ignore-all lint: generated file
// @ts-nocheck 
/*
 * WARNING: This is an internal file that is subject to change!
 *
 * 🛑 Under no circumstances should you import this file directly! 🛑
 *
 * Please import the `PrismaClient` class from the `client.ts` file instead.
 */

import * as runtime from "@prisma/client/runtime/client"
import type * as Prisma from "./prismaNamespace"


const config: runtime.GetPrismaClientConfig = {
  "previewFeatures": [
    "views"
  ],
  "clientVersion": "7.3.0",
  "engineVersion": "9d6ad21cbbceab97458517b147a6a09ff43aa735",
  "activeProvider": "postgresql",
  "inlineSchema": "generator client {\n  provider        = \"prisma-client\"\n  output          = \"generated/prisma/client/postgres\"\n  previewFeatures = [\"views\"]\n}\n\ndatasource db {\n  provider = \"postgresql\"\n}\n\nmodel Users {\n  id                 String            @id @default(dbgenerated(\"gen_random_uuid()\")) @db.Uuid\n  first_name         String\n  last_name          String\n  email              String            @unique\n  phone_number       String\n  residence          String?\n  role               Roles             @default(EMPLOYEE)\n  employee           Employees?        @relation(\"UserEmployee\")\n  oauth_sessions     OAuthSessions[]   @relation(\"UserOAuthSessions\")\n  preferences        Preferences?      @relation(\"UserPreferences\")\n  user_module_access userModuleAccess? @relation(\"UserModuleAccess\")\n\n  @@map(\"users\")\n}\n\nmodel userModuleAccess {\n  id                  Int     @id @default(autoincrement())\n  user_id             String  @unique @db.Uuid\n  timesheets          Boolean @default(true)\n  timesheets_approval Boolean @default(false)\n  employee_list       Boolean @default(true)\n  employee_management Boolean @default(false)\n  personal_profile    Boolean @default(true)\n  dashboard           Boolean @default(true)\n  chatbot             Boolean @default(false)\n  user                Users   @relation(\"UserModuleAccess\", fields: [user_id], references: [id])\n\n  @@map(\"user_module_access\")\n}\n\nmodel Employees {\n  id                   Int              @id @default(autoincrement())\n  user_id              String           @unique @db.Uuid\n  external_payroll_id  Int\n  company_code         Int\n  daily_expected_hours Int\n  first_work_day       DateTime         @db.Date\n  last_work_day        DateTime?        @db.Date\n  supervisor_id        Int?\n  job_title            String?\n  is_supervisor        Boolean          @default(false)\n  // banked_hour_limit    Int              @default(0) //will need to be implemented in the future\n  schedule_preset_id   Int?\n  schedule_preset      SchedulePresets? @relation(\"EmployeesSchedulePreset\", fields: [schedule_preset_id], references: [id])\n  supervisor           Employees?       @relation(\"EmployeeSupervisor\", fields: [supervisor_id], references: [id])\n  crew                 Employees[]      @relation(\"EmployeeSupervisor\")\n  user                 Users            @relation(\"UserEmployee\", fields: [user_id], references: [id])\n  leave_request        LeaveRequests[]  @relation(\"LeaveRequestEmployee\")\n  timesheet            Timesheets[]     @relation(\"TimesheetEmployee\")\n  paid_time_off        PaidTimeOff?     @relation(\"EmployeePaidTimeOff\")\n\n  @@map(\"employees\")\n}\n\nmodel LeaveRequests {\n  id              Int                   @id @default(autoincrement())\n  employee_id     Int\n  leave_type      LeaveTypes\n  comment         String\n  approval_status LeaveApprovalStatus   @default(PENDING)\n  bank_code_id    Int\n  payable_hours   Decimal?              @db.Decimal(5, 2)\n  requested_hours Decimal?              @db.Decimal(5, 2)\n  dates           DateTime[]            @db.Date\n  bank_code       BankCodes             @relation(\"LeaveRequestBankCodes\", fields: [bank_code_id], references: [id])\n  employee        Employees             @relation(\"LeaveRequestEmployee\", fields: [employee_id], references: [id])\n  archive         LeaveRequestsArchive? @relation(\"LeaveRequestToArchive\")\n\n  @@unique([employee_id, leave_type, dates], name: \"leave_per_employee_date\")\n  @@index([employee_id, dates])\n  @@map(\"leave_requests\")\n}\n\nmodel LeaveRequestsArchive {\n  id               Int                 @id @default(autoincrement())\n  leave_request_id Int                 @unique\n  archived_at      DateTime            @default(now())\n  employee_id      Int\n  leave_type       LeaveTypes\n  comment          String\n  approval_status  LeaveApprovalStatus\n  date             DateTime            @db.Date\n  payable_hours    Decimal?            @db.Decimal(5, 2)\n  requested_hours  Decimal?            @db.Decimal(5, 2)\n  leave_request    LeaveRequests       @relation(\"LeaveRequestToArchive\", fields: [leave_request_id], references: [id])\n\n  @@index([employee_id, date])\n  @@map(\"leave_requests_archive\")\n}\n\nmodel Timesheets {\n  id          Int                 @id @default(autoincrement())\n  employee_id Int\n  is_approved Boolean             @default(false)\n  start_date  DateTime            @db.Date\n  // hours_to_bank Decimal?            @db.Decimal(5, 2) //will need to be implemented in the future\n  expense     Expenses[]          @relation(\"ExpensesTimesheet\")\n  shift       Shifts[]            @relation(\"ShiftTimesheet\")\n  employee    Employees           @relation(\"TimesheetEmployee\", fields: [employee_id], references: [id])\n  archive     TimesheetsArchive[] @relation(\"TimesheetsToArchive\")\n\n  // @@unique([employee_id, start_date], name: \"employee_id_start_date\")\n  @@map(\"timesheets\")\n}\n\nmodel TimesheetsArchive {\n  id           Int        @id @default(autoincrement())\n  timesheet_id Int\n  archive_at   DateTime   @default(now())\n  employee_id  Int\n  is_approved  Boolean\n  timesheet    Timesheets @relation(\"TimesheetsToArchive\", fields: [timesheet_id], references: [id])\n\n  @@map(\"timesheets_archive\")\n}\n\nmodel SchedulePresets {\n  id         Int                    @id @default(autoincrement())\n  name       String\n  is_default Boolean                @default(false)\n  employees  Employees[]            @relation(\"EmployeesSchedulePreset\")\n  shifts     SchedulePresetShifts[] @relation(\"SchedulePresetShiftsSchedulePreset\")\n\n  @@map(\"schedule_presets\")\n}\n\nmodel SchedulePresetShifts {\n  id           Int @id @default(autoincrement())\n  preset_id    Int\n  bank_code_id Int\n\n  start_time DateTime        @db.Time(0)\n  end_time   DateTime        @db.Time(0)\n  is_remote  Boolean         @default(false)\n  week_day   Weekday\n  bank_code  BankCodes       @relation(\"SchedulePresetShiftsBankCodes\", fields: [bank_code_id], references: [id])\n  preset     SchedulePresets @relation(\"SchedulePresetShiftsSchedulePreset\", fields: [preset_id], references: [id])\n\n  @@index([preset_id, week_day])\n  @@map(\"schedule_preset_shifts\")\n}\n\nmodel Shifts {\n  id           Int             @id @default(autoincrement())\n  timesheet_id Int\n  date         DateTime        @db.Date\n  start_time   DateTime        @db.Time(0)\n  end_time     DateTime        @db.Time(0)\n  bank_code_id Int\n  is_approved  Boolean         @default(false)\n  is_remote    Boolean         @default(false)\n  comment      String?\n  bank_code    BankCodes       @relation(\"ShiftBankCodes\", fields: [bank_code_id], references: [id])\n  timesheet    Timesheets      @relation(\"ShiftTimesheet\", fields: [timesheet_id], references: [id])\n  archive      ShiftsArchive[] @relation(\"ShiftsToArchive\")\n\n  // @@unique([timesheet_id, date, start_time], name: \"unique_ts_id_date_start_time\")\n  @@map(\"shifts\")\n}\n\nmodel ShiftsArchive {\n  id           Int      @id @default(autoincrement())\n  shift_id     Int\n  archive_at   DateTime @default(now())\n  timesheet_id Int\n  date         DateTime @db.Date\n  start_time   DateTime @db.Time(0)\n  end_time     DateTime @db.Time(0)\n  bank_code_id Int\n  comment      String?\n  shift        Shifts   @relation(\"ShiftsToArchive\", fields: [shift_id], references: [id])\n\n  @@map(\"shifts_archive\")\n}\n\nmodel BankCodes {\n  id                   Int                    @id @default(autoincrement())\n  type                 String\n  categorie            String\n  modifier             Float\n  bank_code            String\n  expenses             Expenses[]             @relation(\"ExpenseBankCodes\")\n  leaveRequests        LeaveRequests[]        @relation(\"LeaveRequestBankCodes\")\n  SchedulePresetShifts SchedulePresetShifts[] @relation(\"SchedulePresetShiftsBankCodes\")\n  shifts               Shifts[]               @relation(\"ShiftBankCodes\")\n\n  @@map(\"bank_codes\")\n}\n\nmodel Expenses {\n  id                 Int               @id @default(autoincrement())\n  timesheet_id       Int\n  date               DateTime          @db.Date\n  amount             Decimal?          @db.Decimal(12, 2)\n  is_approved        Boolean           @default(false)\n  supervisor_comment String?\n  bank_code_id       Int\n  comment            String\n  attachment         Int?\n  mileage            Decimal?          @db.Decimal(12, 2)\n  attachment_record  Attachments?      @relation(\"ExpenseAttachment\", fields: [attachment], references: [id])\n  bank_code          BankCodes         @relation(\"ExpenseBankCodes\", fields: [bank_code_id], references: [id])\n  timesheet          Timesheets        @relation(\"ExpensesTimesheet\", fields: [timesheet_id], references: [id])\n  archive            ExpensesArchive[] @relation(\"ExpensesToArchive\")\n\n  @@unique([timesheet_id, date, amount, mileage], name: \"unique_ts_id_date_amount_mileage\")\n  @@map(\"expenses\")\n}\n\nmodel ExpensesArchive {\n  id                 Int          @id @default(autoincrement())\n  expense_id         Int\n  timesheet_id       Int\n  archived_at        DateTime     @default(now())\n  date               DateTime     @db.Date\n  amount             Decimal?     @db.Decimal(12, 2)\n  is_approved        Boolean\n  supervisor_comment String?\n  bank_code_id       Int\n  comment            String?\n  attachment         Int?\n  mileage            Decimal?     @db.Decimal(12, 2)\n  attachment_record  Attachments? @relation(\"ExpenseArchiveAttachment\", fields: [attachment], references: [id])\n  expense            Expenses     @relation(\"ExpensesToArchive\", fields: [expense_id], references: [id])\n\n  @@map(\"expenses_archive\")\n}\n\nmodel OAuthSessions {\n  id                   String    @id @default(cuid())\n  user_id              String    @db.Uuid\n  application          String\n  access_token         String    @unique\n  refresh_token        String    @unique\n  access_token_expiry  DateTime\n  refresh_token_expiry DateTime?\n  is_revoked           Boolean   @default(false)\n  scopes               Json      @default(\"[]\")\n  created_at           DateTime  @default(now())\n  updated_at           DateTime?\n  sid                  String    @unique\n  user                 Users     @relation(\"UserOAuthSessions\", fields: [user_id], references: [id])\n\n  @@map(\"oauth_sessions\")\n}\n\nmodel Sessions {\n  id        String   @id\n  sid       String   @unique\n  data      String\n  expiresAt DateTime\n\n  @@map(\"sessions\")\n}\n\nmodel Blobs {\n  sha256       String        @id @db.Char(64)\n  size         Int\n  mime         String\n  storage_path String\n  refcount     Int           @default(0)\n  created_at   DateTime      @default(now())\n  attachments  Attachments[] @relation(\"AttachmnentBlob\")\n\n  @@map(\"blobs\")\n}\n\nmodel Attachments {\n  id                 Int                  @id @default(autoincrement())\n  sha256             String               @db.Char(64)\n  owner_type         String\n  owner_id           String\n  status             AttachmentStatus     @default(ACTIVE)\n  created_by         String\n  created_at         DateTime             @default(now())\n  original_name      String\n  retention_policy   RetentionPolicy\n  AttachmentVariants AttachmentVariants[] @relation(\"attachmentVariantAttachment\")\n  blob               Blobs                @relation(\"AttachmnentBlob\", fields: [sha256], references: [sha256])\n  expenses           Expenses[]           @relation(\"ExpenseAttachment\")\n  expenses_archive   ExpensesArchive[]    @relation(\"ExpenseArchiveAttachment\")\n\n  @@index([owner_type, owner_id, created_at])\n  @@index([sha256])\n  @@map(\"attachments\")\n}\n\nmodel AttachmentVariants {\n  id            Int         @id @default(autoincrement())\n  attachment_id Int\n  variant       String\n  bytes         Int\n  width         Int?\n  height        Int?\n  created_at    DateTime    @default(now())\n  path          String\n  attachment    Attachments @relation(\"attachmentVariantAttachment\", fields: [attachment_id], references: [id], onDelete: Cascade)\n\n  @@unique([attachment_id, variant])\n  @@map(\"attachment_variants\")\n}\n\nmodel Preferences {\n  user_id                    String   @unique @db.Uuid\n  id                         Int      @id @default(autoincrement())\n  display_language           String   @default(\"fr-FR\")\n  is_dark_mode               Boolean? @default(false)\n  is_employee_list_grid      Boolean  @default(true)\n  is_lefty_mode              Boolean  @default(false)\n  is_timesheet_approval_grid Boolean  @default(true)\n  notifications              Boolean  @default(true)\n  user                       Users    @relation(\"UserPreferences\", fields: [user_id], references: [id])\n\n  @@map(\"preferences\")\n}\n\nmodel PaidTimeOff {\n  id             Int       @id @default(autoincrement())\n  employee_id    Int       @unique\n  vacation_hours Decimal   @default(0) @db.Decimal(12, 2)\n  banked_hours   Decimal   @default(0) @db.Decimal(12, 2)\n  sick_hours     Decimal   @default(0) @db.Decimal(12, 2)\n  last_updated   DateTime? @db.Date\n\n  employee Employees @relation(\"EmployeePaidTimeOff\", fields: [employee_id], references: [id])\n\n  @@map(\"paid_time_off\")\n}\n\nview PayPeriods {\n  pay_year      Int\n  pay_period_no Int\n  period_start  DateTime @db.Date\n  period_end    DateTime @db.Date\n  payday        DateTime @db.Date\n  label         String\n\n  @@map(\"pay_period\")\n}\n\nenum AttachmentStatus {\n  ACTIVE\n  DELETED\n}\n\nenum RetentionPolicy {\n  EXPENSE_7Y\n  TICKET_2Y\n  PROFILE_KEEP_LAST3\n}\n\nenum Roles {\n  ADMIN\n  SUPERVISOR\n  HR\n  ACCOUNTING\n  EMPLOYEE\n  DEALER\n  CUSTOMER\n  GUEST\n\n  @@map(\"roles\")\n}\n\nenum Modules {\n  timesheets\n  timesheets_approval\n  employee_list\n  employee_management\n  personal_profile\n  dashboard\n  chatbot\n\n  @@map(\"modules\")\n}\n\nenum LeaveTypes {\n  SICK\n  VACATION\n  UNPAID\n  BEREAVEMENT\n  PARENTAL\n  LEGAL\n  WEDDING\n  HOLIDAY\n\n  @@map(\"leave_types\")\n}\n\nenum LeaveApprovalStatus {\n  PENDING\n  APPROVED\n  DENIED\n  CANCELLED\n  ESCALATED\n\n  @@map(\"leave_approval_status\")\n}\n\nenum Weekday {\n  SUN\n  MON\n  TUE\n  WED\n  THU\n  FRI\n  SAT\n}\n",
  "runtimeDataModel": {
    "models": {},
    "enums": {},
    "types": {}
  }
}

config.runtimeDataModel = JSON.parse("{\"models\":{\"Users\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"first_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"last_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"phone_number\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"residence\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"enum\",\"type\":\"Roles\"},{\"name\":\"employee\",\"kind\":\"object\",\"type\":\"Employees\",\"relationName\":\"UserEmployee\"},{\"name\":\"oauth_sessions\",\"kind\":\"object\",\"type\":\"OAuthSessions\",\"relationName\":\"UserOAuthSessions\"},{\"name\":\"preferences\",\"kind\":\"object\",\"type\":\"Preferences\",\"relationName\":\"UserPreferences\"},{\"name\":\"user_module_access\",\"kind\":\"object\",\"type\":\"userModuleAccess\",\"relationName\":\"UserModuleAccess\"}],\"dbName\":\"users\"},\"userModuleAccess\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"timesheets\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"timesheets_approval\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"employee_list\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"employee_management\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"personal_profile\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"dashboard\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"chatbot\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"Users\",\"relationName\":\"UserModuleAccess\"}],\"dbName\":\"user_module_access\"},\"Employees\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"external_payroll_id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"company_code\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"daily_expected_hours\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"first_work_day\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"last_work_day\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"supervisor_id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"job_title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_supervisor\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"schedule_preset_id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"schedule_preset\",\"kind\":\"object\",\"type\":\"SchedulePresets\",\"relationName\":\"EmployeesSchedulePreset\"},{\"name\":\"supervisor\",\"kind\":\"object\",\"type\":\"Employees\",\"relationName\":\"EmployeeSupervisor\"},{\"name\":\"crew\",\"kind\":\"object\",\"type\":\"Employees\",\"relationName\":\"EmployeeSupervisor\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"Users\",\"relationName\":\"UserEmployee\"},{\"name\":\"leave_request\",\"kind\":\"object\",\"type\":\"LeaveRequests\",\"relationName\":\"LeaveRequestEmployee\"},{\"name\":\"timesheet\",\"kind\":\"object\",\"type\":\"Timesheets\",\"relationName\":\"TimesheetEmployee\"},{\"name\":\"paid_time_off\",\"kind\":\"object\",\"type\":\"PaidTimeOff\",\"relationName\":\"EmployeePaidTimeOff\"}],\"dbName\":\"employees\"},\"LeaveRequests\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"employee_id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"leave_type\",\"kind\":\"enum\",\"type\":\"LeaveTypes\"},{\"name\":\"comment\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"approval_status\",\"kind\":\"enum\",\"type\":\"LeaveApprovalStatus\"},{\"name\":\"bank_code_id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"payable_hours\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"requested_hours\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"dates\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"bank_code\",\"kind\":\"object\",\"type\":\"BankCodes\",\"relationName\":\"LeaveRequestBankCodes\"},{\"name\":\"employee\",\"kind\":\"object\",\"type\":\"Employees\",\"relationName\":\"LeaveRequestEmployee\"},{\"name\":\"archive\",\"kind\":\"object\",\"type\":\"LeaveRequestsArchive\",\"relationName\":\"LeaveRequestToArchive\"}],\"dbName\":\"leave_requests\"},\"LeaveRequestsArchive\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"leave_request_id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"archived_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"employee_id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"leave_type\",\"kind\":\"enum\",\"type\":\"LeaveTypes\"},{\"name\":\"comment\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"approval_status\",\"kind\":\"enum\",\"type\":\"LeaveApprovalStatus\"},{\"name\":\"date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"payable_hours\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"requested_hours\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"leave_request\",\"kind\":\"object\",\"type\":\"LeaveRequests\",\"relationName\":\"LeaveRequestToArchive\"}],\"dbName\":\"leave_requests_archive\"},\"Timesheets\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"employee_id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"is_approved\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"start_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"expense\",\"kind\":\"object\",\"type\":\"Expenses\",\"relationName\":\"ExpensesTimesheet\"},{\"name\":\"shift\",\"kind\":\"object\",\"type\":\"Shifts\",\"relationName\":\"ShiftTimesheet\"},{\"name\":\"employee\",\"kind\":\"object\",\"type\":\"Employees\",\"relationName\":\"TimesheetEmployee\"},{\"name\":\"archive\",\"kind\":\"object\",\"type\":\"TimesheetsArchive\",\"relationName\":\"TimesheetsToArchive\"}],\"dbName\":\"timesheets\"},\"TimesheetsArchive\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"timesheet_id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"archive_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"employee_id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"is_approved\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"timesheet\",\"kind\":\"object\",\"type\":\"Timesheets\",\"relationName\":\"TimesheetsToArchive\"}],\"dbName\":\"timesheets_archive\"},\"SchedulePresets\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_default\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"employees\",\"kind\":\"object\",\"type\":\"Employees\",\"relationName\":\"EmployeesSchedulePreset\"},{\"name\":\"shifts\",\"kind\":\"object\",\"type\":\"SchedulePresetShifts\",\"relationName\":\"SchedulePresetShiftsSchedulePreset\"}],\"dbName\":\"schedule_presets\"},\"SchedulePresetShifts\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"preset_id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"bank_code_id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"start_time\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"end_time\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"is_remote\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"week_day\",\"kind\":\"enum\",\"type\":\"Weekday\"},{\"name\":\"bank_code\",\"kind\":\"object\",\"type\":\"BankCodes\",\"relationName\":\"SchedulePresetShiftsBankCodes\"},{\"name\":\"preset\",\"kind\":\"object\",\"type\":\"SchedulePresets\",\"relationName\":\"SchedulePresetShiftsSchedulePreset\"}],\"dbName\":\"schedule_preset_shifts\"},\"Shifts\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"timesheet_id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"start_time\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"end_time\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"bank_code_id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"is_approved\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"is_remote\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"comment\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"bank_code\",\"kind\":\"object\",\"type\":\"BankCodes\",\"relationName\":\"ShiftBankCodes\"},{\"name\":\"timesheet\",\"kind\":\"object\",\"type\":\"Timesheets\",\"relationName\":\"ShiftTimesheet\"},{\"name\":\"archive\",\"kind\":\"object\",\"type\":\"ShiftsArchive\",\"relationName\":\"ShiftsToArchive\"}],\"dbName\":\"shifts\"},\"ShiftsArchive\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"shift_id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"archive_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"timesheet_id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"start_time\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"end_time\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"bank_code_id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"comment\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"shift\",\"kind\":\"object\",\"type\":\"Shifts\",\"relationName\":\"ShiftsToArchive\"}],\"dbName\":\"shifts_archive\"},\"BankCodes\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"type\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"categorie\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"modifier\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"bank_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"expenses\",\"kind\":\"object\",\"type\":\"Expenses\",\"relationName\":\"ExpenseBankCodes\"},{\"name\":\"leaveRequests\",\"kind\":\"object\",\"type\":\"LeaveRequests\",\"relationName\":\"LeaveRequestBankCodes\"},{\"name\":\"SchedulePresetShifts\",\"kind\":\"object\",\"type\":\"SchedulePresetShifts\",\"relationName\":\"SchedulePresetShiftsBankCodes\"},{\"name\":\"shifts\",\"kind\":\"object\",\"type\":\"Shifts\",\"relationName\":\"ShiftBankCodes\"}],\"dbName\":\"bank_codes\"},\"Expenses\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"timesheet_id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"amount\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"is_approved\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"supervisor_comment\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"bank_code_id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"comment\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"attachment\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"mileage\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"attachment_record\",\"kind\":\"object\",\"type\":\"Attachments\",\"relationName\":\"ExpenseAttachment\"},{\"name\":\"bank_code\",\"kind\":\"object\",\"type\":\"BankCodes\",\"relationName\":\"ExpenseBankCodes\"},{\"name\":\"timesheet\",\"kind\":\"object\",\"type\":\"Timesheets\",\"relationName\":\"ExpensesTimesheet\"},{\"name\":\"archive\",\"kind\":\"object\",\"type\":\"ExpensesArchive\",\"relationName\":\"ExpensesToArchive\"}],\"dbName\":\"expenses\"},\"ExpensesArchive\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"expense_id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"timesheet_id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"archived_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"amount\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"is_approved\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"supervisor_comment\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"bank_code_id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"comment\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"attachment\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"mileage\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"attachment_record\",\"kind\":\"object\",\"type\":\"Attachments\",\"relationName\":\"ExpenseArchiveAttachment\"},{\"name\":\"expense\",\"kind\":\"object\",\"type\":\"Expenses\",\"relationName\":\"ExpensesToArchive\"}],\"dbName\":\"expenses_archive\"},\"OAuthSessions\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"application\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"access_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"refresh_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"access_token_expiry\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"refresh_token_expiry\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"is_revoked\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"scopes\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"sid\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"Users\",\"relationName\":\"UserOAuthSessions\"}],\"dbName\":\"oauth_sessions\"},\"Sessions\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sid\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"data\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"expiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"sessions\"},\"Blobs\":{\"fields\":[{\"name\":\"sha256\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"size\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"mime\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"storage_path\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"refcount\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"attachments\",\"kind\":\"object\",\"type\":\"Attachments\",\"relationName\":\"AttachmnentBlob\"}],\"dbName\":\"blobs\"},\"Attachments\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"sha256\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"owner_type\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"owner_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"AttachmentStatus\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"original_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"retention_policy\",\"kind\":\"enum\",\"type\":\"RetentionPolicy\"},{\"name\":\"AttachmentVariants\",\"kind\":\"object\",\"type\":\"AttachmentVariants\",\"relationName\":\"attachmentVariantAttachment\"},{\"name\":\"blob\",\"kind\":\"object\",\"type\":\"Blobs\",\"relationName\":\"AttachmnentBlob\"},{\"name\":\"expenses\",\"kind\":\"object\",\"type\":\"Expenses\",\"relationName\":\"ExpenseAttachment\"},{\"name\":\"expenses_archive\",\"kind\":\"object\",\"type\":\"ExpensesArchive\",\"relationName\":\"ExpenseArchiveAttachment\"}],\"dbName\":\"attachments\"},\"AttachmentVariants\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"attachment_id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"variant\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"bytes\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"width\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"height\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"path\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"attachment\",\"kind\":\"object\",\"type\":\"Attachments\",\"relationName\":\"attachmentVariantAttachment\"}],\"dbName\":\"attachment_variants\"},\"Preferences\":{\"fields\":[{\"name\":\"user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"display_language\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_dark_mode\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"is_employee_list_grid\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"is_lefty_mode\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"is_timesheet_approval_grid\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"notifications\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"Users\",\"relationName\":\"UserPreferences\"}],\"dbName\":\"preferences\"},\"PaidTimeOff\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"employee_id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"vacation_hours\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"banked_hours\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"sick_hours\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"last_updated\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"employee\",\"kind\":\"object\",\"type\":\"Employees\",\"relationName\":\"EmployeePaidTimeOff\"}],\"dbName\":\"paid_time_off\"},\"PayPeriods\":{\"fields\":[{\"name\":\"pay_year\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"pay_period_no\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"period_start\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"period_end\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"payday\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"label\",\"kind\":\"scalar\",\"type\":\"String\"}],\"dbName\":\"pay_period\"}},\"enums\":{},\"types\":{}}")

async function decodeBase64AsWasm(wasmBase64: string): Promise<WebAssembly.Module> {
  const { Buffer } = await import('node:buffer')
  const wasmArray = Buffer.from(wasmBase64, 'base64')
  return new WebAssembly.Module(wasmArray)
}

config.compilerWasm = {
  getRuntime: async () => await import("@prisma/client/runtime/query_compiler_fast_bg.postgresql.js"),

  getQueryCompilerWasmModule: async () => {
    const { wasm } = await import("@prisma/client/runtime/query_compiler_fast_bg.postgresql.wasm-base64.js")
    return await decodeBase64AsWasm(wasm)
  },

  importName: "./query_compiler_fast_bg.js"
}



export type LogOptions<ClientOptions extends Prisma.PrismaClientOptions> =
  'log' extends keyof ClientOptions ? ClientOptions['log'] extends Array<Prisma.LogLevel | Prisma.LogDefinition> ? Prisma.GetEvents<ClientOptions['log']> : never : never

export interface PrismaClientConstructor {
    /**
   * ## Prisma Client
   * 
   * Type-safe database client for TypeScript
   * @example
   * ```
   * const prisma = new PrismaClient()
   * // Fetch zero or more Users
   * const users = await prisma.users.findMany()
   * ```
   * 
   * Read more in our [docs](https://pris.ly/d/client).
   */

  new <
    Options extends Prisma.PrismaClientOptions = Prisma.PrismaClientOptions,
    LogOpts extends LogOptions<Options> = LogOptions<Options>,
    OmitOpts extends Prisma.PrismaClientOptions['omit'] = Options extends { omit: infer U } ? U : Prisma.PrismaClientOptions['omit'],
    ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs
  >(options: Prisma.Subset<Options, Prisma.PrismaClientOptions> ): PrismaClient<LogOpts, OmitOpts, ExtArgs>
}

/**
 * ## Prisma Client
 * 
 * Type-safe database client for TypeScript
 * @example
 * ```
 * const prisma = new PrismaClient()
 * // Fetch zero or more Users
 * const users = await prisma.users.findMany()
 * ```
 * 
 * Read more in our [docs](https://pris.ly/d/client).
 */

export interface PrismaClient<
  in LogOpts extends Prisma.LogLevel = never,
  in out OmitOpts extends Prisma.PrismaClientOptions['omit'] = undefined,
  in out ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs
> {
  [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['other'] }

  $on<V extends LogOpts>(eventType: V, callback: (event: V extends 'query' ? Prisma.QueryEvent : Prisma.LogEvent) => void): PrismaClient;

  /**
   * Connect with the database
   */
  $connect(): runtime.Types.Utils.JsPromise<void>;

  /**
   * Disconnect from the database
   */
  $disconnect(): runtime.Types.Utils.JsPromise<void>;

/**
   * Executes a prepared raw query and returns the number of affected rows.
   * @example
   * ```
   * const result = await prisma.$executeRaw`UPDATE User SET cool = ${true} WHERE email = ${'user@email.com'};`
   * ```
   *
   * Read more in our [docs](https://pris.ly/d/raw-queries).
   */
  $executeRaw<T = unknown>(query: TemplateStringsArray | Prisma.Sql, ...values: any[]): Prisma.PrismaPromise<number>;

  /**
   * Executes a raw query and returns the number of affected rows.
   * Susceptible to SQL injections, see documentation.
   * @example
   * ```
   * const result = await prisma.$executeRawUnsafe('UPDATE User SET cool = $1 WHERE email = $2 ;', true, 'user@email.com')
   * ```
   *
   * Read more in our [docs](https://pris.ly/d/raw-queries).
   */
  $executeRawUnsafe<T = unknown>(query: string, ...values: any[]): Prisma.PrismaPromise<number>;

  /**
   * Performs a prepared raw query and returns the `SELECT` data.
   * @example
   * ```
   * const result = await prisma.$queryRaw`SELECT * FROM User WHERE id = ${1} OR email = ${'user@email.com'};`
   * ```
   *
   * Read more in our [docs](https://pris.ly/d/raw-queries).
   */
  $queryRaw<T = unknown>(query: TemplateStringsArray | Prisma.Sql, ...values: any[]): Prisma.PrismaPromise<T>;

  /**
   * Performs a raw query and returns the `SELECT` data.
   * Susceptible to SQL injections, see documentation.
   * @example
   * ```
   * const result = await prisma.$queryRawUnsafe('SELECT * FROM User WHERE id = $1 OR email = $2;', 1, 'user@email.com')
   * ```
   *
   * Read more in our [docs](https://pris.ly/d/raw-queries).
   */
  $queryRawUnsafe<T = unknown>(query: string, ...values: any[]): Prisma.PrismaPromise<T>;


  /**
   * Allows the running of a sequence of read/write operations that are guaranteed to either succeed or fail as a whole.
   * @example
   * ```
   * const [george, bob, alice] = await prisma.$transaction([
   *   prisma.user.create({ data: { name: 'George' } }),
   *   prisma.user.create({ data: { name: 'Bob' } }),
   *   prisma.user.create({ data: { name: 'Alice' } }),
   * ])
   * ```
   * 
   * Read more in our [docs](https://www.prisma.io/docs/concepts/components/prisma-client/transactions).
   */
  $transaction<P extends Prisma.PrismaPromise<any>[]>(arg: [...P], options?: { isolationLevel?: Prisma.TransactionIsolationLevel }): runtime.Types.Utils.JsPromise<runtime.Types.Utils.UnwrapTuple<P>>

  $transaction<R>(fn: (prisma: Omit<PrismaClient, runtime.ITXClientDenyList>) => runtime.Types.Utils.JsPromise<R>, options?: { maxWait?: number, timeout?: number, isolationLevel?: Prisma.TransactionIsolationLevel }): runtime.Types.Utils.JsPromise<R>

  $extends: runtime.Types.Extensions.ExtendsHook<"extends", Prisma.TypeMapCb<OmitOpts>, ExtArgs, runtime.Types.Utils.Call<Prisma.TypeMapCb<OmitOpts>, {
    extArgs: ExtArgs
  }>>

      /**
   * `prisma.users`: Exposes CRUD operations for the **Users** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more Users
    * const users = await prisma.users.findMany()
    * ```
    */
  get users(): Prisma.UsersDelegate<ExtArgs, { omit: OmitOpts }>;

  /**
   * `prisma.userModuleAccess`: Exposes CRUD operations for the **userModuleAccess** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more UserModuleAccesses
    * const userModuleAccesses = await prisma.userModuleAccess.findMany()
    * ```
    */
  get userModuleAccess(): Prisma.userModuleAccessDelegate<ExtArgs, { omit: OmitOpts }>;

  /**
   * `prisma.employees`: Exposes CRUD operations for the **Employees** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more Employees
    * const employees = await prisma.employees.findMany()
    * ```
    */
  get employees(): Prisma.EmployeesDelegate<ExtArgs, { omit: OmitOpts }>;

  /**
   * `prisma.leaveRequests`: Exposes CRUD operations for the **LeaveRequests** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more LeaveRequests
    * const leaveRequests = await prisma.leaveRequests.findMany()
    * ```
    */
  get leaveRequests(): Prisma.LeaveRequestsDelegate<ExtArgs, { omit: OmitOpts }>;

  /**
   * `prisma.leaveRequestsArchive`: Exposes CRUD operations for the **LeaveRequestsArchive** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more LeaveRequestsArchives
    * const leaveRequestsArchives = await prisma.leaveRequestsArchive.findMany()
    * ```
    */
  get leaveRequestsArchive(): Prisma.LeaveRequestsArchiveDelegate<ExtArgs, { omit: OmitOpts }>;

  /**
   * `prisma.timesheets`: Exposes CRUD operations for the **Timesheets** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more Timesheets
    * const timesheets = await prisma.timesheets.findMany()
    * ```
    */
  get timesheets(): Prisma.TimesheetsDelegate<ExtArgs, { omit: OmitOpts }>;

  /**
   * `prisma.timesheetsArchive`: Exposes CRUD operations for the **TimesheetsArchive** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more TimesheetsArchives
    * const timesheetsArchives = await prisma.timesheetsArchive.findMany()
    * ```
    */
  get timesheetsArchive(): Prisma.TimesheetsArchiveDelegate<ExtArgs, { omit: OmitOpts }>;

  /**
   * `prisma.schedulePresets`: Exposes CRUD operations for the **SchedulePresets** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more SchedulePresets
    * const schedulePresets = await prisma.schedulePresets.findMany()
    * ```
    */
  get schedulePresets(): Prisma.SchedulePresetsDelegate<ExtArgs, { omit: OmitOpts }>;

  /**
   * `prisma.schedulePresetShifts`: Exposes CRUD operations for the **SchedulePresetShifts** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more SchedulePresetShifts
    * const schedulePresetShifts = await prisma.schedulePresetShifts.findMany()
    * ```
    */
  get schedulePresetShifts(): Prisma.SchedulePresetShiftsDelegate<ExtArgs, { omit: OmitOpts }>;

  /**
   * `prisma.shifts`: Exposes CRUD operations for the **Shifts** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more Shifts
    * const shifts = await prisma.shifts.findMany()
    * ```
    */
  get shifts(): Prisma.ShiftsDelegate<ExtArgs, { omit: OmitOpts }>;

  /**
   * `prisma.shiftsArchive`: Exposes CRUD operations for the **ShiftsArchive** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more ShiftsArchives
    * const shiftsArchives = await prisma.shiftsArchive.findMany()
    * ```
    */
  get shiftsArchive(): Prisma.ShiftsArchiveDelegate<ExtArgs, { omit: OmitOpts }>;

  /**
   * `prisma.bankCodes`: Exposes CRUD operations for the **BankCodes** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more BankCodes
    * const bankCodes = await prisma.bankCodes.findMany()
    * ```
    */
  get bankCodes(): Prisma.BankCodesDelegate<ExtArgs, { omit: OmitOpts }>;

  /**
   * `prisma.expenses`: Exposes CRUD operations for the **Expenses** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more Expenses
    * const expenses = await prisma.expenses.findMany()
    * ```
    */
  get expenses(): Prisma.ExpensesDelegate<ExtArgs, { omit: OmitOpts }>;

  /**
   * `prisma.expensesArchive`: Exposes CRUD operations for the **ExpensesArchive** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more ExpensesArchives
    * const expensesArchives = await prisma.expensesArchive.findMany()
    * ```
    */
  get expensesArchive(): Prisma.ExpensesArchiveDelegate<ExtArgs, { omit: OmitOpts }>;

  /**
   * `prisma.oAuthSessions`: Exposes CRUD operations for the **OAuthSessions** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more OAuthSessions
    * const oAuthSessions = await prisma.oAuthSessions.findMany()
    * ```
    */
  get oAuthSessions(): Prisma.OAuthSessionsDelegate<ExtArgs, { omit: OmitOpts }>;

  /**
   * `prisma.sessions`: Exposes CRUD operations for the **Sessions** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more Sessions
    * const sessions = await prisma.sessions.findMany()
    * ```
    */
  get sessions(): Prisma.SessionsDelegate<ExtArgs, { omit: OmitOpts }>;

  /**
   * `prisma.blobs`: Exposes CRUD operations for the **Blobs** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more Blobs
    * const blobs = await prisma.blobs.findMany()
    * ```
    */
  get blobs(): Prisma.BlobsDelegate<ExtArgs, { omit: OmitOpts }>;

  /**
   * `prisma.attachments`: Exposes CRUD operations for the **Attachments** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more Attachments
    * const attachments = await prisma.attachments.findMany()
    * ```
    */
  get attachments(): Prisma.AttachmentsDelegate<ExtArgs, { omit: OmitOpts }>;

  /**
   * `prisma.attachmentVariants`: Exposes CRUD operations for the **AttachmentVariants** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more AttachmentVariants
    * const attachmentVariants = await prisma.attachmentVariants.findMany()
    * ```
    */
  get attachmentVariants(): Prisma.AttachmentVariantsDelegate<ExtArgs, { omit: OmitOpts }>;

  /**
   * `prisma.preferences`: Exposes CRUD operations for the **Preferences** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more Preferences
    * const preferences = await prisma.preferences.findMany()
    * ```
    */
  get preferences(): Prisma.PreferencesDelegate<ExtArgs, { omit: OmitOpts }>;

  /**
   * `prisma.paidTimeOff`: Exposes CRUD operations for the **PaidTimeOff** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more PaidTimeOffs
    * const paidTimeOffs = await prisma.paidTimeOff.findMany()
    * ```
    */
  get paidTimeOff(): Prisma.PaidTimeOffDelegate<ExtArgs, { omit: OmitOpts }>;

  /**
   * `prisma.payPeriods`: Exposes CRUD operations for the **PayPeriods** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more PayPeriods
    * const payPeriods = await prisma.payPeriods.findMany()
    * ```
    */
  get payPeriods(): Prisma.PayPeriodsDelegate<ExtArgs, { omit: OmitOpts }>;
}

export function getPrismaClientClass(): PrismaClientConstructor {
  return runtime.getPrismaClient(config) as unknown as PrismaClientConstructor
}
