
/* !!! 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": [],
  "clientVersion": "7.3.0",
  "engineVersion": "9d6ad21cbbceab97458517b147a6a09ff43aa735",
  "activeProvider": "postgresql",
  "inlineSchema": "generator client {\n  provider   = \"prisma-client\"\n  output     = \"generated/prisma/client/legacy\"\n  engineType = \"client\"\n}\n\ndatasource db {\n  provider = \"postgresql\"\n}\n\nmodel codeDesjardins {\n  id          String @id @map(\"_id\") @db.VarChar(50)\n  code        String @db.VarChar(50)\n  label       String @db.VarChar(50)\n  description String @db.VarChar(250)\n}\n\nmodel customers {\n  id           String  @id @map(\"_id\") @db.Uuid\n  user_id      String? @db.VarChar(50)\n  email        String? @db.VarChar(50)\n  first_name   String? @db.VarChar(50)\n  last_name    String? @db.VarChar(50)\n  phone_number String? @db.VarChar(50)\n  address      String? @db.VarChar(255)\n  created_at   BigInt?\n  updated_at   BigInt?\n  created_by   String? @db.VarChar(50)\n}\n\nmodel dealers {\n  id           String  @id @map(\"_id\") @db.Uuid\n  user_id      String? @db.VarChar(50)\n  email        String? @db.VarChar(50)\n  first_name   String? @db.VarChar(50)\n  last_name    String? @db.VarChar(50)\n  phone_number String? @db.VarChar(50)\n  created_at   BigInt?\n  updated_at   BigInt?\n  created_by   String? @db.VarChar(50)\n}\n\nmodel employee_shift_template {\n  id              String @id @map(\"_id\") @db.Uuid\n  employee_id     String @db.VarChar\n  day_of_the_week String @db.VarChar\n  start_time      BigInt\n  end_time        BigInt\n  created_at      BigInt\n  updated_at      BigInt\n}\n\nmodel employees {\n  id                String   @id @map(\"_id\") @db.Uuid\n  user_id           String?  @db.VarChar(50)\n  employee_number   String?  @db.VarChar(50)\n  email             String?  @db.VarChar(50)\n  first_name        String?  @db.VarChar(50)\n  last_name         String?  @db.VarChar(50)\n  phone_number      String?  @db.VarChar(50)\n  job_title         String?  @db.VarChar(50)\n  company           Int?\n  supervisor        String?  @db.VarChar(50)\n  is_supervisor     Boolean?\n  onboarding        BigInt?\n  offboarding       BigInt?\n  regular_hours_day Float?   @db.Real\n  hours_bank_max    Int?\n  created_at        BigInt?\n  updated_at        BigInt?\n  created_by        String?  @db.VarChar\n}\n\nmodel expenses {\n  id              String   @id @map(\"_id\") @db.Uuid\n  time_sheet_id   String?  @db.VarChar(50)\n  date            String?  @db.VarChar(50)\n  code            String?  @db.VarChar(50)\n  value           Float?   @db.Real\n  description     String?  @db.VarChar\n  evidence_id     String?  @db.VarChar\n  status          Boolean?\n  created_at      BigInt?\n  updated_at      BigInt?\n  supervisor_note String?  @db.VarChar(255)\n}\n\nmodel hours_bank {\n  id          String  @id @map(\"_id\") @db.Uuid\n  employee_id String? @db.VarChar(50)\n  hours       Float?  @db.Real\n  created_at  BigInt?\n  updated_at  BigInt?\n}\n\nmodel mileage_bank {\n  id          String  @id @map(\"_id\") @db.Uuid\n  employee_id String? @db.VarChar(50)\n  mileage     Int?\n  year        Int?\n}\n\nmodel shifts {\n  id              String    @id @map(\"_id\") @db.Uuid\n  time_sheet_id   String?   @db.VarChar(50)\n  code            String?   @db.VarChar(50)\n  type            String?   @db.VarChar(50)\n  date            DateTime? @db.Date\n  start_time      BigInt?\n  end_time        BigInt?\n  comment         String?   @db.VarChar(255)\n  status          Boolean?\n  created_at      BigInt?\n  updated_at      BigInt?\n  supervisor_note String?   @db.VarChar(255)\n}\n\nmodel shifts_of_template {\n  id              String @id @map(\"_id\") @db.Uuid\n  model_id        String @db.Uuid\n  day_of_the_week String @db.VarChar(50)\n  start_time      BigInt\n  end_time        BigInt\n  created_at      BigInt\n  updated_at      BigInt\n}\n\nmodel sick_leave {\n  id          String  @id @map(\"_id\") @db.Uuid\n  employee_id String? @db.VarChar(50)\n  accumulated Float?  @db.Real\n  consumed    Float?  @db.Real\n  year        Int?\n  created_at  BigInt?\n  updated_at  BigInt?\n}\n\nmodel time_sheet_periods {\n  id            String    @id @map(\"_id\") @db.Uuid\n  start_date    DateTime? @db.Date\n  end_date      DateTime? @db.Date\n  payment_date  DateTime? @db.Date\n  period_number Int?\n  year          Int?\n}\n\nmodel time_sheet_template {\n  id          String  @id @map(\"_id\") @db.Uuid\n  title       String  @db.VarChar\n  description String? @db.VarChar\n  created_at  BigInt\n  updated_at  BigInt\n}\n\nmodel time_sheets {\n  id                String    @id @map(\"_id\") @db.Uuid\n  employee_id       String?   @db.VarChar\n  start_date        DateTime? @db.Date\n  end_date          DateTime? @db.Date\n  status            Boolean?\n  banked_hours      Float?    @db.Real\n  consumed_vacation Float?    @db.Real\n  consumed_sick     Float?    @db.Real\n  period_id         String?   @db.VarChar(50)\n  period_number     Int?\n  created_at        BigInt?\n  updated_at        BigInt?\n  blocked_week      Boolean?  @default(false)\n}\n\nmodel users {\n  id                 String   @id @map(\"_id\") @db.VarChar(50)\n  email              String   @unique @db.VarChar(50)\n  password           String   @db.VarChar(255)\n  type               String   @db.VarChar(50)\n  role               String   @db.VarChar(50)\n  is_verified        Boolean?\n  verification_token String?\n  otp_token          String?\n  refresh_token      String?\n  created_at         BigInt?\n  updated_at         BigInt?\n  created_by         String   @db.VarChar(255)\n  last_login         BigInt\n}\n\nmodel vacation_leave {\n  id                 String  @id @map(\"_id\") @db.Uuid\n  employee_id        String? @db.VarChar(50)\n  accumulated        Float?  @db.Real\n  consumed           Float?  @db.Real\n  created_at         BigInt?\n  updated_at         BigInt?\n  start_year         Int?\n  end_year           Int?\n  max_hours_per_year Float?  @db.Real\n}\n",
  "runtimeDataModel": {
    "models": {},
    "enums": {},
    "types": {}
  }
}

config.runtimeDataModel = JSON.parse("{\"models\":{\"codeDesjardins\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"_id\"},{\"name\":\"code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"label\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"}],\"dbName\":null},\"customers\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"_id\"},{\"name\":\"user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"first_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"last_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"phone_number\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"address\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"BigInt\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"BigInt\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"}],\"dbName\":null},\"dealers\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"_id\"},{\"name\":\"user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"first_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"last_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"phone_number\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"BigInt\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"BigInt\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"}],\"dbName\":null},\"employee_shift_template\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"_id\"},{\"name\":\"employee_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"day_of_the_week\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"start_time\",\"kind\":\"scalar\",\"type\":\"BigInt\"},{\"name\":\"end_time\",\"kind\":\"scalar\",\"type\":\"BigInt\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"BigInt\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"BigInt\"}],\"dbName\":null},\"employees\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"_id\"},{\"name\":\"user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"employee_number\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"first_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"last_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"phone_number\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"company\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"supervisor\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_supervisor\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"onboarding\",\"kind\":\"scalar\",\"type\":\"BigInt\"},{\"name\":\"offboarding\",\"kind\":\"scalar\",\"type\":\"BigInt\"},{\"name\":\"regular_hours_day\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"hours_bank_max\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"BigInt\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"BigInt\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"}],\"dbName\":null},\"expenses\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"_id\"},{\"name\":\"time_sheet_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"date\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"value\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evidence_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"BigInt\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"BigInt\"},{\"name\":\"supervisor_note\",\"kind\":\"scalar\",\"type\":\"String\"}],\"dbName\":null},\"hours_bank\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"_id\"},{\"name\":\"employee_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hours\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"BigInt\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"BigInt\"}],\"dbName\":null},\"mileage_bank\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"_id\"},{\"name\":\"employee_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"mileage\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"year\",\"kind\":\"scalar\",\"type\":\"Int\"}],\"dbName\":null},\"shifts\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"_id\"},{\"name\":\"time_sheet_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"type\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"start_time\",\"kind\":\"scalar\",\"type\":\"BigInt\"},{\"name\":\"end_time\",\"kind\":\"scalar\",\"type\":\"BigInt\"},{\"name\":\"comment\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"BigInt\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"BigInt\"},{\"name\":\"supervisor_note\",\"kind\":\"scalar\",\"type\":\"String\"}],\"dbName\":null},\"shifts_of_template\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"_id\"},{\"name\":\"model_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"day_of_the_week\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"start_time\",\"kind\":\"scalar\",\"type\":\"BigInt\"},{\"name\":\"end_time\",\"kind\":\"scalar\",\"type\":\"BigInt\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"BigInt\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"BigInt\"}],\"dbName\":null},\"sick_leave\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"_id\"},{\"name\":\"employee_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"accumulated\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"consumed\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"year\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"BigInt\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"BigInt\"}],\"dbName\":null},\"time_sheet_periods\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"_id\"},{\"name\":\"start_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"end_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"payment_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"period_number\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"year\",\"kind\":\"scalar\",\"type\":\"Int\"}],\"dbName\":null},\"time_sheet_template\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"_id\"},{\"name\":\"title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"BigInt\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"BigInt\"}],\"dbName\":null},\"time_sheets\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"_id\"},{\"name\":\"employee_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"start_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"end_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"status\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"banked_hours\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"consumed_vacation\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"consumed_sick\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"period_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"period_number\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"BigInt\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"BigInt\"},{\"name\":\"blocked_week\",\"kind\":\"scalar\",\"type\":\"Boolean\"}],\"dbName\":null},\"users\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"_id\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"password\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"type\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_verified\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"verification_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"otp_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"refresh_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"BigInt\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"BigInt\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"last_login\",\"kind\":\"scalar\",\"type\":\"BigInt\"}],\"dbName\":null},\"vacation_leave\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"_id\"},{\"name\":\"employee_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"accumulated\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"consumed\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"BigInt\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"BigInt\"},{\"name\":\"start_year\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"end_year\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"max_hours_per_year\",\"kind\":\"scalar\",\"type\":\"Float\"}],\"dbName\":null}},\"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 CodeDesjardins
   * const codeDesjardins = await prisma.codeDesjardins.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 CodeDesjardins
 * const codeDesjardins = await prisma.codeDesjardins.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.codeDesjardins`: Exposes CRUD operations for the **codeDesjardins** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more CodeDesjardins
    * const codeDesjardins = await prisma.codeDesjardins.findMany()
    * ```
    */
  get codeDesjardins(): Prisma.codeDesjardinsDelegate<ExtArgs, { omit: OmitOpts }>;

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

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

  /**
   * `prisma.employee_shift_template`: Exposes CRUD operations for the **employee_shift_template** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more Employee_shift_templates
    * const employee_shift_templates = await prisma.employee_shift_template.findMany()
    * ```
    */
  get employee_shift_template(): Prisma.employee_shift_templateDelegate<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.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.hours_bank`: Exposes CRUD operations for the **hours_bank** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more Hours_banks
    * const hours_banks = await prisma.hours_bank.findMany()
    * ```
    */
  get hours_bank(): Prisma.hours_bankDelegate<ExtArgs, { omit: OmitOpts }>;

  /**
   * `prisma.mileage_bank`: Exposes CRUD operations for the **mileage_bank** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more Mileage_banks
    * const mileage_banks = await prisma.mileage_bank.findMany()
    * ```
    */
  get mileage_bank(): Prisma.mileage_bankDelegate<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.shifts_of_template`: Exposes CRUD operations for the **shifts_of_template** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more Shifts_of_templates
    * const shifts_of_templates = await prisma.shifts_of_template.findMany()
    * ```
    */
  get shifts_of_template(): Prisma.shifts_of_templateDelegate<ExtArgs, { omit: OmitOpts }>;

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

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

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

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

  /**
   * `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.vacation_leave`: Exposes CRUD operations for the **vacation_leave** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more Vacation_leaves
    * const vacation_leaves = await prisma.vacation_leave.findMany()
    * ```
    */
  get vacation_leave(): Prisma.vacation_leaveDelegate<ExtArgs, { omit: OmitOpts }>;
}

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