
/* !!! This is code generated by Prisma. Do not edit directly. !!! */
/* eslint-disable */
// biome-ignore-all lint: generated file
// @ts-nocheck 
/*
 * This file exports the `ticket` model and its related types.
 *
 * 🟢 You can import this file directly.
 */
import type * as runtime from "@prisma/client/runtime/client"
import type * as $Enums from "../enums"
import type * as Prisma from "../internal/prismaNamespace"

/**
 * Model ticket
 * 
 */
export type ticketModel = runtime.Types.Result.DefaultSelection<Prisma.$ticketPayload>

export type AggregateTicket = {
  _count: TicketCountAggregateOutputType | null
  _avg: TicketAvgAggregateOutputType | null
  _sum: TicketSumAggregateOutputType | null
  _min: TicketMinAggregateOutputType | null
  _max: TicketMaxAggregateOutputType | null
}

export type TicketAvgAggregateOutputType = {
  id: number | null
  ost_id: number | null
  parent: number | null
  account_id: number | null
  delivery_id: number | null
  bon_id: number | null
  dept_id: number | null
  open_by: number | null
  assign_to: number | null
  due_date: number | null
  date_create: number | null
  last_update: number | null
  pending_to_open: number | null
  waiting_for: number | null
  priority: number | null
  install_success: number | null
  important: number | null
  closed_by: number | null
}

export type TicketSumAggregateOutputType = {
  id: bigint | null
  ost_id: number | null
  parent: bigint | null
  account_id: bigint | null
  delivery_id: bigint | null
  bon_id: number | null
  dept_id: number | null
  open_by: number | null
  assign_to: number | null
  due_date: bigint | null
  date_create: bigint | null
  last_update: bigint | null
  pending_to_open: bigint | null
  waiting_for: bigint | null
  priority: number | null
  install_success: number | null
  important: number | null
  closed_by: number | null
}

export type TicketMinAggregateOutputType = {
  id: bigint | null
  ost_id: number | null
  parent: bigint | null
  account_id: bigint | null
  delivery_id: bigint | null
  bon_id: number | null
  subject: string | null
  dept_id: number | null
  open_by: number | null
  email_from: string | null
  assign_to: number | null
  status: string | null
  due_date: bigint | null
  due_time: string | null
  date_create: bigint | null
  last_update: bigint | null
  date_closed: string | null
  pending_to_open: bigint | null
  waiting_for: bigint | null
  lock_name: string | null
  public: boolean | null
  priority: number | null
  install_success: number | null
  wizard: string | null
  wizard_fibre: string | null
  important: number | null
  followed_by: string | null
  participant: string | null
  update_timestamp: Date | null
  closed_by: number | null
}

export type TicketMaxAggregateOutputType = {
  id: bigint | null
  ost_id: number | null
  parent: bigint | null
  account_id: bigint | null
  delivery_id: bigint | null
  bon_id: number | null
  subject: string | null
  dept_id: number | null
  open_by: number | null
  email_from: string | null
  assign_to: number | null
  status: string | null
  due_date: bigint | null
  due_time: string | null
  date_create: bigint | null
  last_update: bigint | null
  date_closed: string | null
  pending_to_open: bigint | null
  waiting_for: bigint | null
  lock_name: string | null
  public: boolean | null
  priority: number | null
  install_success: number | null
  wizard: string | null
  wizard_fibre: string | null
  important: number | null
  followed_by: string | null
  participant: string | null
  update_timestamp: Date | null
  closed_by: number | null
}

export type TicketCountAggregateOutputType = {
  id: number
  ost_id: number
  parent: number
  account_id: number
  delivery_id: number
  bon_id: number
  subject: number
  dept_id: number
  open_by: number
  email_from: number
  assign_to: number
  status: number
  due_date: number
  due_time: number
  date_create: number
  last_update: number
  date_closed: number
  pending_to_open: number
  waiting_for: number
  lock_name: number
  public: number
  priority: number
  install_success: number
  wizard: number
  wizard_fibre: number
  important: number
  followed_by: number
  participant: number
  update_timestamp: number
  closed_by: number
  _all: number
}


export type TicketAvgAggregateInputType = {
  id?: true
  ost_id?: true
  parent?: true
  account_id?: true
  delivery_id?: true
  bon_id?: true
  dept_id?: true
  open_by?: true
  assign_to?: true
  due_date?: true
  date_create?: true
  last_update?: true
  pending_to_open?: true
  waiting_for?: true
  priority?: true
  install_success?: true
  important?: true
  closed_by?: true
}

export type TicketSumAggregateInputType = {
  id?: true
  ost_id?: true
  parent?: true
  account_id?: true
  delivery_id?: true
  bon_id?: true
  dept_id?: true
  open_by?: true
  assign_to?: true
  due_date?: true
  date_create?: true
  last_update?: true
  pending_to_open?: true
  waiting_for?: true
  priority?: true
  install_success?: true
  important?: true
  closed_by?: true
}

export type TicketMinAggregateInputType = {
  id?: true
  ost_id?: true
  parent?: true
  account_id?: true
  delivery_id?: true
  bon_id?: true
  subject?: true
  dept_id?: true
  open_by?: true
  email_from?: true
  assign_to?: true
  status?: true
  due_date?: true
  due_time?: true
  date_create?: true
  last_update?: true
  date_closed?: true
  pending_to_open?: true
  waiting_for?: true
  lock_name?: true
  public?: true
  priority?: true
  install_success?: true
  wizard?: true
  wizard_fibre?: true
  important?: true
  followed_by?: true
  participant?: true
  update_timestamp?: true
  closed_by?: true
}

export type TicketMaxAggregateInputType = {
  id?: true
  ost_id?: true
  parent?: true
  account_id?: true
  delivery_id?: true
  bon_id?: true
  subject?: true
  dept_id?: true
  open_by?: true
  email_from?: true
  assign_to?: true
  status?: true
  due_date?: true
  due_time?: true
  date_create?: true
  last_update?: true
  date_closed?: true
  pending_to_open?: true
  waiting_for?: true
  lock_name?: true
  public?: true
  priority?: true
  install_success?: true
  wizard?: true
  wizard_fibre?: true
  important?: true
  followed_by?: true
  participant?: true
  update_timestamp?: true
  closed_by?: true
}

export type TicketCountAggregateInputType = {
  id?: true
  ost_id?: true
  parent?: true
  account_id?: true
  delivery_id?: true
  bon_id?: true
  subject?: true
  dept_id?: true
  open_by?: true
  email_from?: true
  assign_to?: true
  status?: true
  due_date?: true
  due_time?: true
  date_create?: true
  last_update?: true
  date_closed?: true
  pending_to_open?: true
  waiting_for?: true
  lock_name?: true
  public?: true
  priority?: true
  install_success?: true
  wizard?: true
  wizard_fibre?: true
  important?: true
  followed_by?: true
  participant?: true
  update_timestamp?: true
  closed_by?: true
  _all?: true
}

export type TicketAggregateArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Filter which ticket to aggregate.
   */
  where?: Prisma.ticketWhereInput
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
   * 
   * Determine the order of tickets to fetch.
   */
  orderBy?: Prisma.ticketOrderByWithRelationInput | Prisma.ticketOrderByWithRelationInput[]
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
   * 
   * Sets the start position
   */
  cursor?: Prisma.ticketWhereUniqueInput
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
   * 
   * Take `±n` tickets from the position of the cursor.
   */
  take?: number
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
   * 
   * Skip the first `n` tickets.
   */
  skip?: number
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
   * 
   * Count returned tickets
  **/
  _count?: true | TicketCountAggregateInputType
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
   * 
   * Select which fields to average
  **/
  _avg?: TicketAvgAggregateInputType
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
   * 
   * Select which fields to sum
  **/
  _sum?: TicketSumAggregateInputType
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
   * 
   * Select which fields to find the minimum value
  **/
  _min?: TicketMinAggregateInputType
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
   * 
   * Select which fields to find the maximum value
  **/
  _max?: TicketMaxAggregateInputType
}

export type GetTicketAggregateType<T extends TicketAggregateArgs> = {
      [P in keyof T & keyof AggregateTicket]: P extends '_count' | 'count'
    ? T[P] extends true
      ? number
      : Prisma.GetScalarType<T[P], AggregateTicket[P]>
    : Prisma.GetScalarType<T[P], AggregateTicket[P]>
}




export type ticketGroupByArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  where?: Prisma.ticketWhereInput
  orderBy?: Prisma.ticketOrderByWithAggregationInput | Prisma.ticketOrderByWithAggregationInput[]
  by: Prisma.TicketScalarFieldEnum[] | Prisma.TicketScalarFieldEnum
  having?: Prisma.ticketScalarWhereWithAggregatesInput
  take?: number
  skip?: number
  _count?: TicketCountAggregateInputType | true
  _avg?: TicketAvgAggregateInputType
  _sum?: TicketSumAggregateInputType
  _min?: TicketMinAggregateInputType
  _max?: TicketMaxAggregateInputType
}

export type TicketGroupByOutputType = {
  id: bigint
  ost_id: number | null
  parent: bigint
  account_id: bigint | null
  delivery_id: bigint
  bon_id: number | null
  subject: string | null
  dept_id: number | null
  open_by: number
  email_from: string
  assign_to: number
  status: string
  due_date: bigint
  due_time: string
  date_create: bigint | null
  last_update: bigint | null
  date_closed: string
  pending_to_open: bigint
  waiting_for: bigint | null
  lock_name: string
  public: boolean | null
  priority: number
  install_success: number
  wizard: string | null
  wizard_fibre: string | null
  important: number
  followed_by: string
  participant: string
  update_timestamp: Date
  closed_by: number
  _count: TicketCountAggregateOutputType | null
  _avg: TicketAvgAggregateOutputType | null
  _sum: TicketSumAggregateOutputType | null
  _min: TicketMinAggregateOutputType | null
  _max: TicketMaxAggregateOutputType | null
}

type GetTicketGroupByPayload<T extends ticketGroupByArgs> = Prisma.PrismaPromise<
  Array<
    Prisma.PickEnumerable<TicketGroupByOutputType, T['by']> &
      {
        [P in ((keyof T) & (keyof TicketGroupByOutputType))]: P extends '_count'
          ? T[P] extends boolean
            ? number
            : Prisma.GetScalarType<T[P], TicketGroupByOutputType[P]>
          : Prisma.GetScalarType<T[P], TicketGroupByOutputType[P]>
      }
    >
  >



export type ticketWhereInput = {
  AND?: Prisma.ticketWhereInput | Prisma.ticketWhereInput[]
  OR?: Prisma.ticketWhereInput[]
  NOT?: Prisma.ticketWhereInput | Prisma.ticketWhereInput[]
  id?: Prisma.BigIntFilter<"ticket"> | bigint | number
  ost_id?: Prisma.IntNullableFilter<"ticket"> | number | null
  parent?: Prisma.BigIntFilter<"ticket"> | bigint | number
  account_id?: Prisma.BigIntNullableFilter<"ticket"> | bigint | number | null
  delivery_id?: Prisma.BigIntFilter<"ticket"> | bigint | number
  bon_id?: Prisma.IntNullableFilter<"ticket"> | number | null
  subject?: Prisma.StringNullableFilter<"ticket"> | string | null
  dept_id?: Prisma.IntNullableFilter<"ticket"> | number | null
  open_by?: Prisma.IntFilter<"ticket"> | number
  email_from?: Prisma.StringFilter<"ticket"> | string
  assign_to?: Prisma.IntFilter<"ticket"> | number
  status?: Prisma.StringFilter<"ticket"> | string
  due_date?: Prisma.BigIntFilter<"ticket"> | bigint | number
  due_time?: Prisma.StringFilter<"ticket"> | string
  date_create?: Prisma.BigIntNullableFilter<"ticket"> | bigint | number | null
  last_update?: Prisma.BigIntNullableFilter<"ticket"> | bigint | number | null
  date_closed?: Prisma.StringFilter<"ticket"> | string
  pending_to_open?: Prisma.BigIntFilter<"ticket"> | bigint | number
  waiting_for?: Prisma.BigIntNullableFilter<"ticket"> | bigint | number | null
  lock_name?: Prisma.StringFilter<"ticket"> | string
  public?: Prisma.BoolNullableFilter<"ticket"> | boolean | null
  priority?: Prisma.IntFilter<"ticket"> | number
  install_success?: Prisma.IntFilter<"ticket"> | number
  wizard?: Prisma.StringNullableFilter<"ticket"> | string | null
  wizard_fibre?: Prisma.StringNullableFilter<"ticket"> | string | null
  important?: Prisma.IntFilter<"ticket"> | number
  followed_by?: Prisma.StringFilter<"ticket"> | string
  participant?: Prisma.StringFilter<"ticket"> | string
  update_timestamp?: Prisma.DateTimeFilter<"ticket"> | Date | string
  closed_by?: Prisma.IntFilter<"ticket"> | number
}

export type ticketOrderByWithRelationInput = {
  id?: Prisma.SortOrder
  ost_id?: Prisma.SortOrderInput | Prisma.SortOrder
  parent?: Prisma.SortOrder
  account_id?: Prisma.SortOrderInput | Prisma.SortOrder
  delivery_id?: Prisma.SortOrder
  bon_id?: Prisma.SortOrderInput | Prisma.SortOrder
  subject?: Prisma.SortOrderInput | Prisma.SortOrder
  dept_id?: Prisma.SortOrderInput | Prisma.SortOrder
  open_by?: Prisma.SortOrder
  email_from?: Prisma.SortOrder
  assign_to?: Prisma.SortOrder
  status?: Prisma.SortOrder
  due_date?: Prisma.SortOrder
  due_time?: Prisma.SortOrder
  date_create?: Prisma.SortOrderInput | Prisma.SortOrder
  last_update?: Prisma.SortOrderInput | Prisma.SortOrder
  date_closed?: Prisma.SortOrder
  pending_to_open?: Prisma.SortOrder
  waiting_for?: Prisma.SortOrderInput | Prisma.SortOrder
  lock_name?: Prisma.SortOrder
  public?: Prisma.SortOrderInput | Prisma.SortOrder
  priority?: Prisma.SortOrder
  install_success?: Prisma.SortOrder
  wizard?: Prisma.SortOrderInput | Prisma.SortOrder
  wizard_fibre?: Prisma.SortOrderInput | Prisma.SortOrder
  important?: Prisma.SortOrder
  followed_by?: Prisma.SortOrder
  participant?: Prisma.SortOrder
  update_timestamp?: Prisma.SortOrder
  closed_by?: Prisma.SortOrder
  _relevance?: Prisma.ticketOrderByRelevanceInput
}

export type ticketWhereUniqueInput = Prisma.AtLeast<{
  id?: bigint | number
  AND?: Prisma.ticketWhereInput | Prisma.ticketWhereInput[]
  OR?: Prisma.ticketWhereInput[]
  NOT?: Prisma.ticketWhereInput | Prisma.ticketWhereInput[]
  ost_id?: Prisma.IntNullableFilter<"ticket"> | number | null
  parent?: Prisma.BigIntFilter<"ticket"> | bigint | number
  account_id?: Prisma.BigIntNullableFilter<"ticket"> | bigint | number | null
  delivery_id?: Prisma.BigIntFilter<"ticket"> | bigint | number
  bon_id?: Prisma.IntNullableFilter<"ticket"> | number | null
  subject?: Prisma.StringNullableFilter<"ticket"> | string | null
  dept_id?: Prisma.IntNullableFilter<"ticket"> | number | null
  open_by?: Prisma.IntFilter<"ticket"> | number
  email_from?: Prisma.StringFilter<"ticket"> | string
  assign_to?: Prisma.IntFilter<"ticket"> | number
  status?: Prisma.StringFilter<"ticket"> | string
  due_date?: Prisma.BigIntFilter<"ticket"> | bigint | number
  due_time?: Prisma.StringFilter<"ticket"> | string
  date_create?: Prisma.BigIntNullableFilter<"ticket"> | bigint | number | null
  last_update?: Prisma.BigIntNullableFilter<"ticket"> | bigint | number | null
  date_closed?: Prisma.StringFilter<"ticket"> | string
  pending_to_open?: Prisma.BigIntFilter<"ticket"> | bigint | number
  waiting_for?: Prisma.BigIntNullableFilter<"ticket"> | bigint | number | null
  lock_name?: Prisma.StringFilter<"ticket"> | string
  public?: Prisma.BoolNullableFilter<"ticket"> | boolean | null
  priority?: Prisma.IntFilter<"ticket"> | number
  install_success?: Prisma.IntFilter<"ticket"> | number
  wizard?: Prisma.StringNullableFilter<"ticket"> | string | null
  wizard_fibre?: Prisma.StringNullableFilter<"ticket"> | string | null
  important?: Prisma.IntFilter<"ticket"> | number
  followed_by?: Prisma.StringFilter<"ticket"> | string
  participant?: Prisma.StringFilter<"ticket"> | string
  update_timestamp?: Prisma.DateTimeFilter<"ticket"> | Date | string
  closed_by?: Prisma.IntFilter<"ticket"> | number
}, "id">

export type ticketOrderByWithAggregationInput = {
  id?: Prisma.SortOrder
  ost_id?: Prisma.SortOrderInput | Prisma.SortOrder
  parent?: Prisma.SortOrder
  account_id?: Prisma.SortOrderInput | Prisma.SortOrder
  delivery_id?: Prisma.SortOrder
  bon_id?: Prisma.SortOrderInput | Prisma.SortOrder
  subject?: Prisma.SortOrderInput | Prisma.SortOrder
  dept_id?: Prisma.SortOrderInput | Prisma.SortOrder
  open_by?: Prisma.SortOrder
  email_from?: Prisma.SortOrder
  assign_to?: Prisma.SortOrder
  status?: Prisma.SortOrder
  due_date?: Prisma.SortOrder
  due_time?: Prisma.SortOrder
  date_create?: Prisma.SortOrderInput | Prisma.SortOrder
  last_update?: Prisma.SortOrderInput | Prisma.SortOrder
  date_closed?: Prisma.SortOrder
  pending_to_open?: Prisma.SortOrder
  waiting_for?: Prisma.SortOrderInput | Prisma.SortOrder
  lock_name?: Prisma.SortOrder
  public?: Prisma.SortOrderInput | Prisma.SortOrder
  priority?: Prisma.SortOrder
  install_success?: Prisma.SortOrder
  wizard?: Prisma.SortOrderInput | Prisma.SortOrder
  wizard_fibre?: Prisma.SortOrderInput | Prisma.SortOrder
  important?: Prisma.SortOrder
  followed_by?: Prisma.SortOrder
  participant?: Prisma.SortOrder
  update_timestamp?: Prisma.SortOrder
  closed_by?: Prisma.SortOrder
  _count?: Prisma.ticketCountOrderByAggregateInput
  _avg?: Prisma.ticketAvgOrderByAggregateInput
  _max?: Prisma.ticketMaxOrderByAggregateInput
  _min?: Prisma.ticketMinOrderByAggregateInput
  _sum?: Prisma.ticketSumOrderByAggregateInput
}

export type ticketScalarWhereWithAggregatesInput = {
  AND?: Prisma.ticketScalarWhereWithAggregatesInput | Prisma.ticketScalarWhereWithAggregatesInput[]
  OR?: Prisma.ticketScalarWhereWithAggregatesInput[]
  NOT?: Prisma.ticketScalarWhereWithAggregatesInput | Prisma.ticketScalarWhereWithAggregatesInput[]
  id?: Prisma.BigIntWithAggregatesFilter<"ticket"> | bigint | number
  ost_id?: Prisma.IntNullableWithAggregatesFilter<"ticket"> | number | null
  parent?: Prisma.BigIntWithAggregatesFilter<"ticket"> | bigint | number
  account_id?: Prisma.BigIntNullableWithAggregatesFilter<"ticket"> | bigint | number | null
  delivery_id?: Prisma.BigIntWithAggregatesFilter<"ticket"> | bigint | number
  bon_id?: Prisma.IntNullableWithAggregatesFilter<"ticket"> | number | null
  subject?: Prisma.StringNullableWithAggregatesFilter<"ticket"> | string | null
  dept_id?: Prisma.IntNullableWithAggregatesFilter<"ticket"> | number | null
  open_by?: Prisma.IntWithAggregatesFilter<"ticket"> | number
  email_from?: Prisma.StringWithAggregatesFilter<"ticket"> | string
  assign_to?: Prisma.IntWithAggregatesFilter<"ticket"> | number
  status?: Prisma.StringWithAggregatesFilter<"ticket"> | string
  due_date?: Prisma.BigIntWithAggregatesFilter<"ticket"> | bigint | number
  due_time?: Prisma.StringWithAggregatesFilter<"ticket"> | string
  date_create?: Prisma.BigIntNullableWithAggregatesFilter<"ticket"> | bigint | number | null
  last_update?: Prisma.BigIntNullableWithAggregatesFilter<"ticket"> | bigint | number | null
  date_closed?: Prisma.StringWithAggregatesFilter<"ticket"> | string
  pending_to_open?: Prisma.BigIntWithAggregatesFilter<"ticket"> | bigint | number
  waiting_for?: Prisma.BigIntNullableWithAggregatesFilter<"ticket"> | bigint | number | null
  lock_name?: Prisma.StringWithAggregatesFilter<"ticket"> | string
  public?: Prisma.BoolNullableWithAggregatesFilter<"ticket"> | boolean | null
  priority?: Prisma.IntWithAggregatesFilter<"ticket"> | number
  install_success?: Prisma.IntWithAggregatesFilter<"ticket"> | number
  wizard?: Prisma.StringNullableWithAggregatesFilter<"ticket"> | string | null
  wizard_fibre?: Prisma.StringNullableWithAggregatesFilter<"ticket"> | string | null
  important?: Prisma.IntWithAggregatesFilter<"ticket"> | number
  followed_by?: Prisma.StringWithAggregatesFilter<"ticket"> | string
  participant?: Prisma.StringWithAggregatesFilter<"ticket"> | string
  update_timestamp?: Prisma.DateTimeWithAggregatesFilter<"ticket"> | Date | string
  closed_by?: Prisma.IntWithAggregatesFilter<"ticket"> | number
}

export type ticketCreateInput = {
  id?: bigint | number
  ost_id?: number | null
  parent?: bigint | number
  account_id?: bigint | number | null
  delivery_id?: bigint | number
  bon_id?: number | null
  subject?: string | null
  dept_id?: number | null
  open_by?: number
  email_from: string
  assign_to?: number
  status?: string
  due_date?: bigint | number
  due_time?: string
  date_create?: bigint | number | null
  last_update?: bigint | number | null
  date_closed?: string
  pending_to_open?: bigint | number
  waiting_for?: bigint | number | null
  lock_name: string
  public?: boolean | null
  priority?: number
  install_success?: number
  wizard?: string | null
  wizard_fibre?: string | null
  important?: number
  followed_by: string
  participant: string
  update_timestamp?: Date | string
  closed_by?: number
}

export type ticketUncheckedCreateInput = {
  id?: bigint | number
  ost_id?: number | null
  parent?: bigint | number
  account_id?: bigint | number | null
  delivery_id?: bigint | number
  bon_id?: number | null
  subject?: string | null
  dept_id?: number | null
  open_by?: number
  email_from: string
  assign_to?: number
  status?: string
  due_date?: bigint | number
  due_time?: string
  date_create?: bigint | number | null
  last_update?: bigint | number | null
  date_closed?: string
  pending_to_open?: bigint | number
  waiting_for?: bigint | number | null
  lock_name: string
  public?: boolean | null
  priority?: number
  install_success?: number
  wizard?: string | null
  wizard_fibre?: string | null
  important?: number
  followed_by: string
  participant: string
  update_timestamp?: Date | string
  closed_by?: number
}

export type ticketUpdateInput = {
  id?: Prisma.BigIntFieldUpdateOperationsInput | bigint | number
  ost_id?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
  parent?: Prisma.BigIntFieldUpdateOperationsInput | bigint | number
  account_id?: Prisma.NullableBigIntFieldUpdateOperationsInput | bigint | number | null
  delivery_id?: Prisma.BigIntFieldUpdateOperationsInput | bigint | number
  bon_id?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
  subject?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  dept_id?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
  open_by?: Prisma.IntFieldUpdateOperationsInput | number
  email_from?: Prisma.StringFieldUpdateOperationsInput | string
  assign_to?: Prisma.IntFieldUpdateOperationsInput | number
  status?: Prisma.StringFieldUpdateOperationsInput | string
  due_date?: Prisma.BigIntFieldUpdateOperationsInput | bigint | number
  due_time?: Prisma.StringFieldUpdateOperationsInput | string
  date_create?: Prisma.NullableBigIntFieldUpdateOperationsInput | bigint | number | null
  last_update?: Prisma.NullableBigIntFieldUpdateOperationsInput | bigint | number | null
  date_closed?: Prisma.StringFieldUpdateOperationsInput | string
  pending_to_open?: Prisma.BigIntFieldUpdateOperationsInput | bigint | number
  waiting_for?: Prisma.NullableBigIntFieldUpdateOperationsInput | bigint | number | null
  lock_name?: Prisma.StringFieldUpdateOperationsInput | string
  public?: Prisma.NullableBoolFieldUpdateOperationsInput | boolean | null
  priority?: Prisma.IntFieldUpdateOperationsInput | number
  install_success?: Prisma.IntFieldUpdateOperationsInput | number
  wizard?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  wizard_fibre?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  important?: Prisma.IntFieldUpdateOperationsInput | number
  followed_by?: Prisma.StringFieldUpdateOperationsInput | string
  participant?: Prisma.StringFieldUpdateOperationsInput | string
  update_timestamp?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  closed_by?: Prisma.IntFieldUpdateOperationsInput | number
}

export type ticketUncheckedUpdateInput = {
  id?: Prisma.BigIntFieldUpdateOperationsInput | bigint | number
  ost_id?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
  parent?: Prisma.BigIntFieldUpdateOperationsInput | bigint | number
  account_id?: Prisma.NullableBigIntFieldUpdateOperationsInput | bigint | number | null
  delivery_id?: Prisma.BigIntFieldUpdateOperationsInput | bigint | number
  bon_id?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
  subject?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  dept_id?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
  open_by?: Prisma.IntFieldUpdateOperationsInput | number
  email_from?: Prisma.StringFieldUpdateOperationsInput | string
  assign_to?: Prisma.IntFieldUpdateOperationsInput | number
  status?: Prisma.StringFieldUpdateOperationsInput | string
  due_date?: Prisma.BigIntFieldUpdateOperationsInput | bigint | number
  due_time?: Prisma.StringFieldUpdateOperationsInput | string
  date_create?: Prisma.NullableBigIntFieldUpdateOperationsInput | bigint | number | null
  last_update?: Prisma.NullableBigIntFieldUpdateOperationsInput | bigint | number | null
  date_closed?: Prisma.StringFieldUpdateOperationsInput | string
  pending_to_open?: Prisma.BigIntFieldUpdateOperationsInput | bigint | number
  waiting_for?: Prisma.NullableBigIntFieldUpdateOperationsInput | bigint | number | null
  lock_name?: Prisma.StringFieldUpdateOperationsInput | string
  public?: Prisma.NullableBoolFieldUpdateOperationsInput | boolean | null
  priority?: Prisma.IntFieldUpdateOperationsInput | number
  install_success?: Prisma.IntFieldUpdateOperationsInput | number
  wizard?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  wizard_fibre?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  important?: Prisma.IntFieldUpdateOperationsInput | number
  followed_by?: Prisma.StringFieldUpdateOperationsInput | string
  participant?: Prisma.StringFieldUpdateOperationsInput | string
  update_timestamp?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  closed_by?: Prisma.IntFieldUpdateOperationsInput | number
}

export type ticketCreateManyInput = {
  id?: bigint | number
  ost_id?: number | null
  parent?: bigint | number
  account_id?: bigint | number | null
  delivery_id?: bigint | number
  bon_id?: number | null
  subject?: string | null
  dept_id?: number | null
  open_by?: number
  email_from: string
  assign_to?: number
  status?: string
  due_date?: bigint | number
  due_time?: string
  date_create?: bigint | number | null
  last_update?: bigint | number | null
  date_closed?: string
  pending_to_open?: bigint | number
  waiting_for?: bigint | number | null
  lock_name: string
  public?: boolean | null
  priority?: number
  install_success?: number
  wizard?: string | null
  wizard_fibre?: string | null
  important?: number
  followed_by: string
  participant: string
  update_timestamp?: Date | string
  closed_by?: number
}

export type ticketUpdateManyMutationInput = {
  id?: Prisma.BigIntFieldUpdateOperationsInput | bigint | number
  ost_id?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
  parent?: Prisma.BigIntFieldUpdateOperationsInput | bigint | number
  account_id?: Prisma.NullableBigIntFieldUpdateOperationsInput | bigint | number | null
  delivery_id?: Prisma.BigIntFieldUpdateOperationsInput | bigint | number
  bon_id?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
  subject?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  dept_id?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
  open_by?: Prisma.IntFieldUpdateOperationsInput | number
  email_from?: Prisma.StringFieldUpdateOperationsInput | string
  assign_to?: Prisma.IntFieldUpdateOperationsInput | number
  status?: Prisma.StringFieldUpdateOperationsInput | string
  due_date?: Prisma.BigIntFieldUpdateOperationsInput | bigint | number
  due_time?: Prisma.StringFieldUpdateOperationsInput | string
  date_create?: Prisma.NullableBigIntFieldUpdateOperationsInput | bigint | number | null
  last_update?: Prisma.NullableBigIntFieldUpdateOperationsInput | bigint | number | null
  date_closed?: Prisma.StringFieldUpdateOperationsInput | string
  pending_to_open?: Prisma.BigIntFieldUpdateOperationsInput | bigint | number
  waiting_for?: Prisma.NullableBigIntFieldUpdateOperationsInput | bigint | number | null
  lock_name?: Prisma.StringFieldUpdateOperationsInput | string
  public?: Prisma.NullableBoolFieldUpdateOperationsInput | boolean | null
  priority?: Prisma.IntFieldUpdateOperationsInput | number
  install_success?: Prisma.IntFieldUpdateOperationsInput | number
  wizard?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  wizard_fibre?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  important?: Prisma.IntFieldUpdateOperationsInput | number
  followed_by?: Prisma.StringFieldUpdateOperationsInput | string
  participant?: Prisma.StringFieldUpdateOperationsInput | string
  update_timestamp?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  closed_by?: Prisma.IntFieldUpdateOperationsInput | number
}

export type ticketUncheckedUpdateManyInput = {
  id?: Prisma.BigIntFieldUpdateOperationsInput | bigint | number
  ost_id?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
  parent?: Prisma.BigIntFieldUpdateOperationsInput | bigint | number
  account_id?: Prisma.NullableBigIntFieldUpdateOperationsInput | bigint | number | null
  delivery_id?: Prisma.BigIntFieldUpdateOperationsInput | bigint | number
  bon_id?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
  subject?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  dept_id?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
  open_by?: Prisma.IntFieldUpdateOperationsInput | number
  email_from?: Prisma.StringFieldUpdateOperationsInput | string
  assign_to?: Prisma.IntFieldUpdateOperationsInput | number
  status?: Prisma.StringFieldUpdateOperationsInput | string
  due_date?: Prisma.BigIntFieldUpdateOperationsInput | bigint | number
  due_time?: Prisma.StringFieldUpdateOperationsInput | string
  date_create?: Prisma.NullableBigIntFieldUpdateOperationsInput | bigint | number | null
  last_update?: Prisma.NullableBigIntFieldUpdateOperationsInput | bigint | number | null
  date_closed?: Prisma.StringFieldUpdateOperationsInput | string
  pending_to_open?: Prisma.BigIntFieldUpdateOperationsInput | bigint | number
  waiting_for?: Prisma.NullableBigIntFieldUpdateOperationsInput | bigint | number | null
  lock_name?: Prisma.StringFieldUpdateOperationsInput | string
  public?: Prisma.NullableBoolFieldUpdateOperationsInput | boolean | null
  priority?: Prisma.IntFieldUpdateOperationsInput | number
  install_success?: Prisma.IntFieldUpdateOperationsInput | number
  wizard?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  wizard_fibre?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  important?: Prisma.IntFieldUpdateOperationsInput | number
  followed_by?: Prisma.StringFieldUpdateOperationsInput | string
  participant?: Prisma.StringFieldUpdateOperationsInput | string
  update_timestamp?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  closed_by?: Prisma.IntFieldUpdateOperationsInput | number
}

export type ticketOrderByRelevanceInput = {
  fields: Prisma.ticketOrderByRelevanceFieldEnum | Prisma.ticketOrderByRelevanceFieldEnum[]
  sort: Prisma.SortOrder
  search: string
}

export type ticketCountOrderByAggregateInput = {
  id?: Prisma.SortOrder
  ost_id?: Prisma.SortOrder
  parent?: Prisma.SortOrder
  account_id?: Prisma.SortOrder
  delivery_id?: Prisma.SortOrder
  bon_id?: Prisma.SortOrder
  subject?: Prisma.SortOrder
  dept_id?: Prisma.SortOrder
  open_by?: Prisma.SortOrder
  email_from?: Prisma.SortOrder
  assign_to?: Prisma.SortOrder
  status?: Prisma.SortOrder
  due_date?: Prisma.SortOrder
  due_time?: Prisma.SortOrder
  date_create?: Prisma.SortOrder
  last_update?: Prisma.SortOrder
  date_closed?: Prisma.SortOrder
  pending_to_open?: Prisma.SortOrder
  waiting_for?: Prisma.SortOrder
  lock_name?: Prisma.SortOrder
  public?: Prisma.SortOrder
  priority?: Prisma.SortOrder
  install_success?: Prisma.SortOrder
  wizard?: Prisma.SortOrder
  wizard_fibre?: Prisma.SortOrder
  important?: Prisma.SortOrder
  followed_by?: Prisma.SortOrder
  participant?: Prisma.SortOrder
  update_timestamp?: Prisma.SortOrder
  closed_by?: Prisma.SortOrder
}

export type ticketAvgOrderByAggregateInput = {
  id?: Prisma.SortOrder
  ost_id?: Prisma.SortOrder
  parent?: Prisma.SortOrder
  account_id?: Prisma.SortOrder
  delivery_id?: Prisma.SortOrder
  bon_id?: Prisma.SortOrder
  dept_id?: Prisma.SortOrder
  open_by?: Prisma.SortOrder
  assign_to?: Prisma.SortOrder
  due_date?: Prisma.SortOrder
  date_create?: Prisma.SortOrder
  last_update?: Prisma.SortOrder
  pending_to_open?: Prisma.SortOrder
  waiting_for?: Prisma.SortOrder
  priority?: Prisma.SortOrder
  install_success?: Prisma.SortOrder
  important?: Prisma.SortOrder
  closed_by?: Prisma.SortOrder
}

export type ticketMaxOrderByAggregateInput = {
  id?: Prisma.SortOrder
  ost_id?: Prisma.SortOrder
  parent?: Prisma.SortOrder
  account_id?: Prisma.SortOrder
  delivery_id?: Prisma.SortOrder
  bon_id?: Prisma.SortOrder
  subject?: Prisma.SortOrder
  dept_id?: Prisma.SortOrder
  open_by?: Prisma.SortOrder
  email_from?: Prisma.SortOrder
  assign_to?: Prisma.SortOrder
  status?: Prisma.SortOrder
  due_date?: Prisma.SortOrder
  due_time?: Prisma.SortOrder
  date_create?: Prisma.SortOrder
  last_update?: Prisma.SortOrder
  date_closed?: Prisma.SortOrder
  pending_to_open?: Prisma.SortOrder
  waiting_for?: Prisma.SortOrder
  lock_name?: Prisma.SortOrder
  public?: Prisma.SortOrder
  priority?: Prisma.SortOrder
  install_success?: Prisma.SortOrder
  wizard?: Prisma.SortOrder
  wizard_fibre?: Prisma.SortOrder
  important?: Prisma.SortOrder
  followed_by?: Prisma.SortOrder
  participant?: Prisma.SortOrder
  update_timestamp?: Prisma.SortOrder
  closed_by?: Prisma.SortOrder
}

export type ticketMinOrderByAggregateInput = {
  id?: Prisma.SortOrder
  ost_id?: Prisma.SortOrder
  parent?: Prisma.SortOrder
  account_id?: Prisma.SortOrder
  delivery_id?: Prisma.SortOrder
  bon_id?: Prisma.SortOrder
  subject?: Prisma.SortOrder
  dept_id?: Prisma.SortOrder
  open_by?: Prisma.SortOrder
  email_from?: Prisma.SortOrder
  assign_to?: Prisma.SortOrder
  status?: Prisma.SortOrder
  due_date?: Prisma.SortOrder
  due_time?: Prisma.SortOrder
  date_create?: Prisma.SortOrder
  last_update?: Prisma.SortOrder
  date_closed?: Prisma.SortOrder
  pending_to_open?: Prisma.SortOrder
  waiting_for?: Prisma.SortOrder
  lock_name?: Prisma.SortOrder
  public?: Prisma.SortOrder
  priority?: Prisma.SortOrder
  install_success?: Prisma.SortOrder
  wizard?: Prisma.SortOrder
  wizard_fibre?: Prisma.SortOrder
  important?: Prisma.SortOrder
  followed_by?: Prisma.SortOrder
  participant?: Prisma.SortOrder
  update_timestamp?: Prisma.SortOrder
  closed_by?: Prisma.SortOrder
}

export type ticketSumOrderByAggregateInput = {
  id?: Prisma.SortOrder
  ost_id?: Prisma.SortOrder
  parent?: Prisma.SortOrder
  account_id?: Prisma.SortOrder
  delivery_id?: Prisma.SortOrder
  bon_id?: Prisma.SortOrder
  dept_id?: Prisma.SortOrder
  open_by?: Prisma.SortOrder
  assign_to?: Prisma.SortOrder
  due_date?: Prisma.SortOrder
  date_create?: Prisma.SortOrder
  last_update?: Prisma.SortOrder
  pending_to_open?: Prisma.SortOrder
  waiting_for?: Prisma.SortOrder
  priority?: Prisma.SortOrder
  install_success?: Prisma.SortOrder
  important?: Prisma.SortOrder
  closed_by?: Prisma.SortOrder
}

export type NullableBoolFieldUpdateOperationsInput = {
  set?: boolean | null
}



export type ticketSelect<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetSelect<{
  id?: boolean
  ost_id?: boolean
  parent?: boolean
  account_id?: boolean
  delivery_id?: boolean
  bon_id?: boolean
  subject?: boolean
  dept_id?: boolean
  open_by?: boolean
  email_from?: boolean
  assign_to?: boolean
  status?: boolean
  due_date?: boolean
  due_time?: boolean
  date_create?: boolean
  last_update?: boolean
  date_closed?: boolean
  pending_to_open?: boolean
  waiting_for?: boolean
  lock_name?: boolean
  public?: boolean
  priority?: boolean
  install_success?: boolean
  wizard?: boolean
  wizard_fibre?: boolean
  important?: boolean
  followed_by?: boolean
  participant?: boolean
  update_timestamp?: boolean
  closed_by?: boolean
}, ExtArgs["result"]["ticket"]>



export type ticketSelectScalar = {
  id?: boolean
  ost_id?: boolean
  parent?: boolean
  account_id?: boolean
  delivery_id?: boolean
  bon_id?: boolean
  subject?: boolean
  dept_id?: boolean
  open_by?: boolean
  email_from?: boolean
  assign_to?: boolean
  status?: boolean
  due_date?: boolean
  due_time?: boolean
  date_create?: boolean
  last_update?: boolean
  date_closed?: boolean
  pending_to_open?: boolean
  waiting_for?: boolean
  lock_name?: boolean
  public?: boolean
  priority?: boolean
  install_success?: boolean
  wizard?: boolean
  wizard_fibre?: boolean
  important?: boolean
  followed_by?: boolean
  participant?: boolean
  update_timestamp?: boolean
  closed_by?: boolean
}

export type ticketOmit<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetOmit<"id" | "ost_id" | "parent" | "account_id" | "delivery_id" | "bon_id" | "subject" | "dept_id" | "open_by" | "email_from" | "assign_to" | "status" | "due_date" | "due_time" | "date_create" | "last_update" | "date_closed" | "pending_to_open" | "waiting_for" | "lock_name" | "public" | "priority" | "install_success" | "wizard" | "wizard_fibre" | "important" | "followed_by" | "participant" | "update_timestamp" | "closed_by", ExtArgs["result"]["ticket"]>

export type $ticketPayload<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  name: "ticket"
  objects: {}
  scalars: runtime.Types.Extensions.GetPayloadResult<{
    id: bigint
    ost_id: number | null
    parent: bigint
    account_id: bigint | null
    delivery_id: bigint
    bon_id: number | null
    subject: string | null
    dept_id: number | null
    open_by: number
    email_from: string
    assign_to: number
    status: string
    due_date: bigint
    due_time: string
    date_create: bigint | null
    last_update: bigint | null
    date_closed: string
    pending_to_open: bigint
    waiting_for: bigint | null
    lock_name: string
    public: boolean | null
    priority: number
    install_success: number
    wizard: string | null
    wizard_fibre: string | null
    important: number
    followed_by: string
    participant: string
    update_timestamp: Date
    closed_by: number
  }, ExtArgs["result"]["ticket"]>
  composites: {}
}

export type ticketGetPayload<S extends boolean | null | undefined | ticketDefaultArgs> = runtime.Types.Result.GetResult<Prisma.$ticketPayload, S>

export type ticketCountArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> =
  Omit<ticketFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
    select?: TicketCountAggregateInputType | true
  }

export interface ticketDelegate<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs, GlobalOmitOptions = {}> {
  [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['ticket'], meta: { name: 'ticket' } }
  /**
   * Find zero or one Ticket that matches the filter.
   * @param {ticketFindUniqueArgs} args - Arguments to find a Ticket
   * @example
   * // Get one Ticket
   * const ticket = await prisma.ticket.findUnique({
   *   where: {
   *     // ... provide filter here
   *   }
   * })
   */
  findUnique<T extends ticketFindUniqueArgs>(args: Prisma.SelectSubset<T, ticketFindUniqueArgs<ExtArgs>>): Prisma.Prisma__ticketClient<runtime.Types.Result.GetResult<Prisma.$ticketPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

  /**
   * Find one Ticket that matches the filter or throw an error with `error.code='P2025'`
   * if no matches were found.
   * @param {ticketFindUniqueOrThrowArgs} args - Arguments to find a Ticket
   * @example
   * // Get one Ticket
   * const ticket = await prisma.ticket.findUniqueOrThrow({
   *   where: {
   *     // ... provide filter here
   *   }
   * })
   */
  findUniqueOrThrow<T extends ticketFindUniqueOrThrowArgs>(args: Prisma.SelectSubset<T, ticketFindUniqueOrThrowArgs<ExtArgs>>): Prisma.Prisma__ticketClient<runtime.Types.Result.GetResult<Prisma.$ticketPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

  /**
   * Find the first Ticket that matches the filter.
   * Note, that providing `undefined` is treated as the value not being there.
   * Read more here: https://pris.ly/d/null-undefined
   * @param {ticketFindFirstArgs} args - Arguments to find a Ticket
   * @example
   * // Get one Ticket
   * const ticket = await prisma.ticket.findFirst({
   *   where: {
   *     // ... provide filter here
   *   }
   * })
   */
  findFirst<T extends ticketFindFirstArgs>(args?: Prisma.SelectSubset<T, ticketFindFirstArgs<ExtArgs>>): Prisma.Prisma__ticketClient<runtime.Types.Result.GetResult<Prisma.$ticketPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

  /**
   * Find the first Ticket that matches the filter or
   * throw `PrismaKnownClientError` with `P2025` code if no matches were found.
   * Note, that providing `undefined` is treated as the value not being there.
   * Read more here: https://pris.ly/d/null-undefined
   * @param {ticketFindFirstOrThrowArgs} args - Arguments to find a Ticket
   * @example
   * // Get one Ticket
   * const ticket = await prisma.ticket.findFirstOrThrow({
   *   where: {
   *     // ... provide filter here
   *   }
   * })
   */
  findFirstOrThrow<T extends ticketFindFirstOrThrowArgs>(args?: Prisma.SelectSubset<T, ticketFindFirstOrThrowArgs<ExtArgs>>): Prisma.Prisma__ticketClient<runtime.Types.Result.GetResult<Prisma.$ticketPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

  /**
   * Find zero or more Tickets that matches the filter.
   * Note, that providing `undefined` is treated as the value not being there.
   * Read more here: https://pris.ly/d/null-undefined
   * @param {ticketFindManyArgs} args - Arguments to filter and select certain fields only.
   * @example
   * // Get all Tickets
   * const tickets = await prisma.ticket.findMany()
   * 
   * // Get first 10 Tickets
   * const tickets = await prisma.ticket.findMany({ take: 10 })
   * 
   * // Only select the `id`
   * const ticketWithIdOnly = await prisma.ticket.findMany({ select: { id: true } })
   * 
   */
  findMany<T extends ticketFindManyArgs>(args?: Prisma.SelectSubset<T, ticketFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<runtime.Types.Result.GetResult<Prisma.$ticketPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

  /**
   * Create a Ticket.
   * @param {ticketCreateArgs} args - Arguments to create a Ticket.
   * @example
   * // Create one Ticket
   * const Ticket = await prisma.ticket.create({
   *   data: {
   *     // ... data to create a Ticket
   *   }
   * })
   * 
   */
  create<T extends ticketCreateArgs>(args: Prisma.SelectSubset<T, ticketCreateArgs<ExtArgs>>): Prisma.Prisma__ticketClient<runtime.Types.Result.GetResult<Prisma.$ticketPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

  /**
   * Create many Tickets.
   * @param {ticketCreateManyArgs} args - Arguments to create many Tickets.
   * @example
   * // Create many Tickets
   * const ticket = await prisma.ticket.createMany({
   *   data: [
   *     // ... provide data here
   *   ]
   * })
   *     
   */
  createMany<T extends ticketCreateManyArgs>(args?: Prisma.SelectSubset<T, ticketCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<Prisma.BatchPayload>

  /**
   * Delete a Ticket.
   * @param {ticketDeleteArgs} args - Arguments to delete one Ticket.
   * @example
   * // Delete one Ticket
   * const Ticket = await prisma.ticket.delete({
   *   where: {
   *     // ... filter to delete one Ticket
   *   }
   * })
   * 
   */
  delete<T extends ticketDeleteArgs>(args: Prisma.SelectSubset<T, ticketDeleteArgs<ExtArgs>>): Prisma.Prisma__ticketClient<runtime.Types.Result.GetResult<Prisma.$ticketPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

  /**
   * Update one Ticket.
   * @param {ticketUpdateArgs} args - Arguments to update one Ticket.
   * @example
   * // Update one Ticket
   * const ticket = await prisma.ticket.update({
   *   where: {
   *     // ... provide filter here
   *   },
   *   data: {
   *     // ... provide data here
   *   }
   * })
   * 
   */
  update<T extends ticketUpdateArgs>(args: Prisma.SelectSubset<T, ticketUpdateArgs<ExtArgs>>): Prisma.Prisma__ticketClient<runtime.Types.Result.GetResult<Prisma.$ticketPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

  /**
   * Delete zero or more Tickets.
   * @param {ticketDeleteManyArgs} args - Arguments to filter Tickets to delete.
   * @example
   * // Delete a few Tickets
   * const { count } = await prisma.ticket.deleteMany({
   *   where: {
   *     // ... provide filter here
   *   }
   * })
   * 
   */
  deleteMany<T extends ticketDeleteManyArgs>(args?: Prisma.SelectSubset<T, ticketDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<Prisma.BatchPayload>

  /**
   * Update zero or more Tickets.
   * Note, that providing `undefined` is treated as the value not being there.
   * Read more here: https://pris.ly/d/null-undefined
   * @param {ticketUpdateManyArgs} args - Arguments to update one or more rows.
   * @example
   * // Update many Tickets
   * const ticket = await prisma.ticket.updateMany({
   *   where: {
   *     // ... provide filter here
   *   },
   *   data: {
   *     // ... provide data here
   *   }
   * })
   * 
   */
  updateMany<T extends ticketUpdateManyArgs>(args: Prisma.SelectSubset<T, ticketUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<Prisma.BatchPayload>

  /**
   * Create or update one Ticket.
   * @param {ticketUpsertArgs} args - Arguments to update or create a Ticket.
   * @example
   * // Update or create a Ticket
   * const ticket = await prisma.ticket.upsert({
   *   create: {
   *     // ... data to create a Ticket
   *   },
   *   update: {
   *     // ... in case it already exists, update
   *   },
   *   where: {
   *     // ... the filter for the Ticket we want to update
   *   }
   * })
   */
  upsert<T extends ticketUpsertArgs>(args: Prisma.SelectSubset<T, ticketUpsertArgs<ExtArgs>>): Prisma.Prisma__ticketClient<runtime.Types.Result.GetResult<Prisma.$ticketPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


  /**
   * Count the number of Tickets.
   * Note, that providing `undefined` is treated as the value not being there.
   * Read more here: https://pris.ly/d/null-undefined
   * @param {ticketCountArgs} args - Arguments to filter Tickets to count.
   * @example
   * // Count the number of Tickets
   * const count = await prisma.ticket.count({
   *   where: {
   *     // ... the filter for the Tickets we want to count
   *   }
   * })
  **/
  count<T extends ticketCountArgs>(
    args?: Prisma.Subset<T, ticketCountArgs>,
  ): Prisma.PrismaPromise<
    T extends runtime.Types.Utils.Record<'select', any>
      ? T['select'] extends true
        ? number
        : Prisma.GetScalarType<T['select'], TicketCountAggregateOutputType>
      : number
  >

  /**
   * Allows you to perform aggregations operations on a Ticket.
   * Note, that providing `undefined` is treated as the value not being there.
   * Read more here: https://pris.ly/d/null-undefined
   * @param {TicketAggregateArgs} args - Select which aggregations you would like to apply and on what fields.
   * @example
   * // Ordered by age ascending
   * // Where email contains prisma.io
   * // Limited to the 10 users
   * const aggregations = await prisma.user.aggregate({
   *   _avg: {
   *     age: true,
   *   },
   *   where: {
   *     email: {
   *       contains: "prisma.io",
   *     },
   *   },
   *   orderBy: {
   *     age: "asc",
   *   },
   *   take: 10,
   * })
  **/
  aggregate<T extends TicketAggregateArgs>(args: Prisma.Subset<T, TicketAggregateArgs>): Prisma.PrismaPromise<GetTicketAggregateType<T>>

  /**
   * Group by Ticket.
   * Note, that providing `undefined` is treated as the value not being there.
   * Read more here: https://pris.ly/d/null-undefined
   * @param {ticketGroupByArgs} args - Group by arguments.
   * @example
   * // Group by city, order by createdAt, get count
   * const result = await prisma.user.groupBy({
   *   by: ['city', 'createdAt'],
   *   orderBy: {
   *     createdAt: true
   *   },
   *   _count: {
   *     _all: true
   *   },
   * })
   * 
  **/
  groupBy<
    T extends ticketGroupByArgs,
    HasSelectOrTake extends Prisma.Or<
      Prisma.Extends<'skip', Prisma.Keys<T>>,
      Prisma.Extends<'take', Prisma.Keys<T>>
    >,
    OrderByArg extends Prisma.True extends HasSelectOrTake
      ? { orderBy: ticketGroupByArgs['orderBy'] }
      : { orderBy?: ticketGroupByArgs['orderBy'] },
    OrderFields extends Prisma.ExcludeUnderscoreKeys<Prisma.Keys<Prisma.MaybeTupleToUnion<T['orderBy']>>>,
    ByFields extends Prisma.MaybeTupleToUnion<T['by']>,
    ByValid extends Prisma.Has<ByFields, OrderFields>,
    HavingFields extends Prisma.GetHavingFields<T['having']>,
    HavingValid extends Prisma.Has<ByFields, HavingFields>,
    ByEmpty extends T['by'] extends never[] ? Prisma.True : Prisma.False,
    InputErrors extends ByEmpty extends Prisma.True
    ? `Error: "by" must not be empty.`
    : HavingValid extends Prisma.False
    ? {
        [P in HavingFields]: P extends ByFields
          ? never
          : P extends string
          ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
          : [
              Error,
              'Field ',
              P,
              ` in "having" needs to be provided in "by"`,
            ]
      }[HavingFields]
    : 'take' extends Prisma.Keys<T>
    ? 'orderBy' extends Prisma.Keys<T>
      ? ByValid extends Prisma.True
        ? {}
        : {
            [P in OrderFields]: P extends ByFields
              ? never
              : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
          }[OrderFields]
      : 'Error: If you provide "take", you also need to provide "orderBy"'
    : 'skip' extends Prisma.Keys<T>
    ? 'orderBy' extends Prisma.Keys<T>
      ? ByValid extends Prisma.True
        ? {}
        : {
            [P in OrderFields]: P extends ByFields
              ? never
              : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
          }[OrderFields]
      : 'Error: If you provide "skip", you also need to provide "orderBy"'
    : ByValid extends Prisma.True
    ? {}
    : {
        [P in OrderFields]: P extends ByFields
          ? never
          : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
      }[OrderFields]
  >(args: Prisma.SubsetIntersection<T, ticketGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetTicketGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
/**
 * Fields of the ticket model
 */
readonly fields: ticketFieldRefs;
}

/**
 * The delegate class that acts as a "Promise-like" for ticket.
 * Why is this prefixed with `Prisma__`?
 * Because we want to prevent naming conflicts as mentioned in
 * https://github.com/prisma/prisma-client-js/issues/707
 */
export interface Prisma__ticketClient<T, Null = never, ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
  readonly [Symbol.toStringTag]: "PrismaPromise"
  /**
   * Attaches callbacks for the resolution and/or rejection of the Promise.
   * @param onfulfilled The callback to execute when the Promise is resolved.
   * @param onrejected The callback to execute when the Promise is rejected.
   * @returns A Promise for the completion of which ever callback is executed.
   */
  then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): runtime.Types.Utils.JsPromise<TResult1 | TResult2>
  /**
   * Attaches a callback for only the rejection of the Promise.
   * @param onrejected The callback to execute when the Promise is rejected.
   * @returns A Promise for the completion of the callback.
   */
  catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): runtime.Types.Utils.JsPromise<T | TResult>
  /**
   * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
   * resolved value cannot be modified from the callback.
   * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
   * @returns A Promise for the completion of the callback.
   */
  finally(onfinally?: (() => void) | undefined | null): runtime.Types.Utils.JsPromise<T>
}




/**
 * Fields of the ticket model
 */
export interface ticketFieldRefs {
  readonly id: Prisma.FieldRef<"ticket", 'BigInt'>
  readonly ost_id: Prisma.FieldRef<"ticket", 'Int'>
  readonly parent: Prisma.FieldRef<"ticket", 'BigInt'>
  readonly account_id: Prisma.FieldRef<"ticket", 'BigInt'>
  readonly delivery_id: Prisma.FieldRef<"ticket", 'BigInt'>
  readonly bon_id: Prisma.FieldRef<"ticket", 'Int'>
  readonly subject: Prisma.FieldRef<"ticket", 'String'>
  readonly dept_id: Prisma.FieldRef<"ticket", 'Int'>
  readonly open_by: Prisma.FieldRef<"ticket", 'Int'>
  readonly email_from: Prisma.FieldRef<"ticket", 'String'>
  readonly assign_to: Prisma.FieldRef<"ticket", 'Int'>
  readonly status: Prisma.FieldRef<"ticket", 'String'>
  readonly due_date: Prisma.FieldRef<"ticket", 'BigInt'>
  readonly due_time: Prisma.FieldRef<"ticket", 'String'>
  readonly date_create: Prisma.FieldRef<"ticket", 'BigInt'>
  readonly last_update: Prisma.FieldRef<"ticket", 'BigInt'>
  readonly date_closed: Prisma.FieldRef<"ticket", 'String'>
  readonly pending_to_open: Prisma.FieldRef<"ticket", 'BigInt'>
  readonly waiting_for: Prisma.FieldRef<"ticket", 'BigInt'>
  readonly lock_name: Prisma.FieldRef<"ticket", 'String'>
  readonly public: Prisma.FieldRef<"ticket", 'Boolean'>
  readonly priority: Prisma.FieldRef<"ticket", 'Int'>
  readonly install_success: Prisma.FieldRef<"ticket", 'Int'>
  readonly wizard: Prisma.FieldRef<"ticket", 'String'>
  readonly wizard_fibre: Prisma.FieldRef<"ticket", 'String'>
  readonly important: Prisma.FieldRef<"ticket", 'Int'>
  readonly followed_by: Prisma.FieldRef<"ticket", 'String'>
  readonly participant: Prisma.FieldRef<"ticket", 'String'>
  readonly update_timestamp: Prisma.FieldRef<"ticket", 'DateTime'>
  readonly closed_by: Prisma.FieldRef<"ticket", 'Int'>
}
    

// Custom InputTypes
/**
 * ticket findUnique
 */
export type ticketFindUniqueArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Select specific fields to fetch from the ticket
   */
  select?: Prisma.ticketSelect<ExtArgs> | null
  /**
   * Omit specific fields from the ticket
   */
  omit?: Prisma.ticketOmit<ExtArgs> | null
  /**
   * Filter, which ticket to fetch.
   */
  where: Prisma.ticketWhereUniqueInput
}

/**
 * ticket findUniqueOrThrow
 */
export type ticketFindUniqueOrThrowArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Select specific fields to fetch from the ticket
   */
  select?: Prisma.ticketSelect<ExtArgs> | null
  /**
   * Omit specific fields from the ticket
   */
  omit?: Prisma.ticketOmit<ExtArgs> | null
  /**
   * Filter, which ticket to fetch.
   */
  where: Prisma.ticketWhereUniqueInput
}

/**
 * ticket findFirst
 */
export type ticketFindFirstArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Select specific fields to fetch from the ticket
   */
  select?: Prisma.ticketSelect<ExtArgs> | null
  /**
   * Omit specific fields from the ticket
   */
  omit?: Prisma.ticketOmit<ExtArgs> | null
  /**
   * Filter, which ticket to fetch.
   */
  where?: Prisma.ticketWhereInput
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
   * 
   * Determine the order of tickets to fetch.
   */
  orderBy?: Prisma.ticketOrderByWithRelationInput | Prisma.ticketOrderByWithRelationInput[]
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
   * 
   * Sets the position for searching for tickets.
   */
  cursor?: Prisma.ticketWhereUniqueInput
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
   * 
   * Take `±n` tickets from the position of the cursor.
   */
  take?: number
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
   * 
   * Skip the first `n` tickets.
   */
  skip?: number
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
   * 
   * Filter by unique combinations of tickets.
   */
  distinct?: Prisma.TicketScalarFieldEnum | Prisma.TicketScalarFieldEnum[]
}

/**
 * ticket findFirstOrThrow
 */
export type ticketFindFirstOrThrowArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Select specific fields to fetch from the ticket
   */
  select?: Prisma.ticketSelect<ExtArgs> | null
  /**
   * Omit specific fields from the ticket
   */
  omit?: Prisma.ticketOmit<ExtArgs> | null
  /**
   * Filter, which ticket to fetch.
   */
  where?: Prisma.ticketWhereInput
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
   * 
   * Determine the order of tickets to fetch.
   */
  orderBy?: Prisma.ticketOrderByWithRelationInput | Prisma.ticketOrderByWithRelationInput[]
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
   * 
   * Sets the position for searching for tickets.
   */
  cursor?: Prisma.ticketWhereUniqueInput
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
   * 
   * Take `±n` tickets from the position of the cursor.
   */
  take?: number
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
   * 
   * Skip the first `n` tickets.
   */
  skip?: number
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
   * 
   * Filter by unique combinations of tickets.
   */
  distinct?: Prisma.TicketScalarFieldEnum | Prisma.TicketScalarFieldEnum[]
}

/**
 * ticket findMany
 */
export type ticketFindManyArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Select specific fields to fetch from the ticket
   */
  select?: Prisma.ticketSelect<ExtArgs> | null
  /**
   * Omit specific fields from the ticket
   */
  omit?: Prisma.ticketOmit<ExtArgs> | null
  /**
   * Filter, which tickets to fetch.
   */
  where?: Prisma.ticketWhereInput
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
   * 
   * Determine the order of tickets to fetch.
   */
  orderBy?: Prisma.ticketOrderByWithRelationInput | Prisma.ticketOrderByWithRelationInput[]
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
   * 
   * Sets the position for listing tickets.
   */
  cursor?: Prisma.ticketWhereUniqueInput
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
   * 
   * Take `±n` tickets from the position of the cursor.
   */
  take?: number
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
   * 
   * Skip the first `n` tickets.
   */
  skip?: number
  distinct?: Prisma.TicketScalarFieldEnum | Prisma.TicketScalarFieldEnum[]
}

/**
 * ticket create
 */
export type ticketCreateArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Select specific fields to fetch from the ticket
   */
  select?: Prisma.ticketSelect<ExtArgs> | null
  /**
   * Omit specific fields from the ticket
   */
  omit?: Prisma.ticketOmit<ExtArgs> | null
  /**
   * The data needed to create a ticket.
   */
  data: Prisma.XOR<Prisma.ticketCreateInput, Prisma.ticketUncheckedCreateInput>
}

/**
 * ticket createMany
 */
export type ticketCreateManyArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * The data used to create many tickets.
   */
  data: Prisma.ticketCreateManyInput | Prisma.ticketCreateManyInput[]
  skipDuplicates?: boolean
}

/**
 * ticket update
 */
export type ticketUpdateArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Select specific fields to fetch from the ticket
   */
  select?: Prisma.ticketSelect<ExtArgs> | null
  /**
   * Omit specific fields from the ticket
   */
  omit?: Prisma.ticketOmit<ExtArgs> | null
  /**
   * The data needed to update a ticket.
   */
  data: Prisma.XOR<Prisma.ticketUpdateInput, Prisma.ticketUncheckedUpdateInput>
  /**
   * Choose, which ticket to update.
   */
  where: Prisma.ticketWhereUniqueInput
}

/**
 * ticket updateMany
 */
export type ticketUpdateManyArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * The data used to update tickets.
   */
  data: Prisma.XOR<Prisma.ticketUpdateManyMutationInput, Prisma.ticketUncheckedUpdateManyInput>
  /**
   * Filter which tickets to update
   */
  where?: Prisma.ticketWhereInput
  /**
   * Limit how many tickets to update.
   */
  limit?: number
}

/**
 * ticket upsert
 */
export type ticketUpsertArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Select specific fields to fetch from the ticket
   */
  select?: Prisma.ticketSelect<ExtArgs> | null
  /**
   * Omit specific fields from the ticket
   */
  omit?: Prisma.ticketOmit<ExtArgs> | null
  /**
   * The filter to search for the ticket to update in case it exists.
   */
  where: Prisma.ticketWhereUniqueInput
  /**
   * In case the ticket found by the `where` argument doesn't exist, create a new ticket with this data.
   */
  create: Prisma.XOR<Prisma.ticketCreateInput, Prisma.ticketUncheckedCreateInput>
  /**
   * In case the ticket was found with the provided `where` argument, update it with this data.
   */
  update: Prisma.XOR<Prisma.ticketUpdateInput, Prisma.ticketUncheckedUpdateInput>
}

/**
 * ticket delete
 */
export type ticketDeleteArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Select specific fields to fetch from the ticket
   */
  select?: Prisma.ticketSelect<ExtArgs> | null
  /**
   * Omit specific fields from the ticket
   */
  omit?: Prisma.ticketOmit<ExtArgs> | null
  /**
   * Filter which ticket to delete.
   */
  where: Prisma.ticketWhereUniqueInput
}

/**
 * ticket deleteMany
 */
export type ticketDeleteManyArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Filter which tickets to delete
   */
  where?: Prisma.ticketWhereInput
  /**
   * Limit how many tickets to delete.
   */
  limit?: number
}

/**
 * ticket without action
 */
export type ticketDefaultArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Select specific fields to fetch from the ticket
   */
  select?: Prisma.ticketSelect<ExtArgs> | null
  /**
   * Omit specific fields from the ticket
   */
  omit?: Prisma.ticketOmit<ExtArgs> | null
}
