
/**
 * Client
**/

import * as runtime from './runtime/library.js';
import $Types = runtime.Types // general types
import $Public = runtime.Types.Public
import $Utils = runtime.Types.Utils
import $Extensions = runtime.Types.Extensions
import $Result = runtime.Types.Result

export type PrismaPromise<T> = $Public.PrismaPromise<T>


/**
 * Model User
 * 
 */
export type User = $Result.DefaultSelection<Prisma.$UserPayload>
/**
 * Model Admin
 * 
 */
export type Admin = $Result.DefaultSelection<Prisma.$AdminPayload>
/**
 * Model SmsCode
 * 
 */
export type SmsCode = $Result.DefaultSelection<Prisma.$SmsCodePayload>
/**
 * Model Organization
 * 
 */
export type Organization = $Result.DefaultSelection<Prisma.$OrganizationPayload>
/**
 * Model ApiKey
 * 
 */
export type ApiKey = $Result.DefaultSelection<Prisma.$ApiKeyPayload>
/**
 * Model CounterpartyRequest
 * 
 */
export type CounterpartyRequest = $Result.DefaultSelection<Prisma.$CounterpartyRequestPayload>
/**
 * Model Counterparty
 * 
 */
export type Counterparty = $Result.DefaultSelection<Prisma.$CounterpartyPayload>
/**
 * Model Message
 * 
 */
export type Message = $Result.DefaultSelection<Prisma.$MessagePayload>
/**
 * Model Service
 * 
 */
export type Service = $Result.DefaultSelection<Prisma.$ServicePayload>
/**
 * Model Supply
 * 
 */
export type Supply = $Result.DefaultSelection<Prisma.$SupplyPayload>
/**
 * Model Category
 * 
 */
export type Category = $Result.DefaultSelection<Prisma.$CategoryPayload>
/**
 * Model Product
 * 
 */
export type Product = $Result.DefaultSelection<Prisma.$ProductPayload>
/**
 * Model Cart
 * 
 */
export type Cart = $Result.DefaultSelection<Prisma.$CartPayload>
/**
 * Model CartItem
 * 
 */
export type CartItem = $Result.DefaultSelection<Prisma.$CartItemPayload>
/**
 * Model Favorites
 * 
 */
export type Favorites = $Result.DefaultSelection<Prisma.$FavoritesPayload>
/**
 * Model Employee
 * 
 */
export type Employee = $Result.DefaultSelection<Prisma.$EmployeePayload>
/**
 * Model EmployeeSchedule
 * 
 */
export type EmployeeSchedule = $Result.DefaultSelection<Prisma.$EmployeeSchedulePayload>
/**
 * Model WildberriesSupply
 * 
 */
export type WildberriesSupply = $Result.DefaultSelection<Prisma.$WildberriesSupplyPayload>
/**
 * Model WildberriesSupplyCard
 * 
 */
export type WildberriesSupplyCard = $Result.DefaultSelection<Prisma.$WildberriesSupplyCardPayload>
/**
 * Model Logistics
 * 
 */
export type Logistics = $Result.DefaultSelection<Prisma.$LogisticsPayload>
/**
 * Model SupplyOrder
 * 
 */
export type SupplyOrder = $Result.DefaultSelection<Prisma.$SupplyOrderPayload>
/**
 * Model SupplyOrderItem
 * 
 */
export type SupplyOrderItem = $Result.DefaultSelection<Prisma.$SupplyOrderItemPayload>
/**
 * Model SupplySupplier
 * 
 */
export type SupplySupplier = $Result.DefaultSelection<Prisma.$SupplySupplierPayload>

/**
 * Enums
 */
export namespace $Enums {
  export const OrganizationType: {
  FULFILLMENT: 'FULFILLMENT',
  SELLER: 'SELLER',
  LOGIST: 'LOGIST',
  WHOLESALE: 'WHOLESALE'
};

export type OrganizationType = (typeof OrganizationType)[keyof typeof OrganizationType]


export const MarketplaceType: {
  WILDBERRIES: 'WILDBERRIES',
  OZON: 'OZON'
};

export type MarketplaceType = (typeof MarketplaceType)[keyof typeof MarketplaceType]


export const CounterpartyRequestStatus: {
  PENDING: 'PENDING',
  ACCEPTED: 'ACCEPTED',
  REJECTED: 'REJECTED',
  CANCELLED: 'CANCELLED'
};

export type CounterpartyRequestStatus = (typeof CounterpartyRequestStatus)[keyof typeof CounterpartyRequestStatus]


export const MessageType: {
  TEXT: 'TEXT',
  VOICE: 'VOICE',
  IMAGE: 'IMAGE',
  FILE: 'FILE'
};

export type MessageType = (typeof MessageType)[keyof typeof MessageType]


export const EmployeeStatus: {
  ACTIVE: 'ACTIVE',
  VACATION: 'VACATION',
  SICK: 'SICK',
  FIRED: 'FIRED'
};

export type EmployeeStatus = (typeof EmployeeStatus)[keyof typeof EmployeeStatus]


export const ScheduleStatus: {
  WORK: 'WORK',
  WEEKEND: 'WEEKEND',
  VACATION: 'VACATION',
  SICK: 'SICK',
  ABSENT: 'ABSENT'
};

export type ScheduleStatus = (typeof ScheduleStatus)[keyof typeof ScheduleStatus]


export const SupplyOrderStatus: {
  PENDING: 'PENDING',
  CONFIRMED: 'CONFIRMED',
  IN_TRANSIT: 'IN_TRANSIT',
  DELIVERED: 'DELIVERED',
  CANCELLED: 'CANCELLED'
};

export type SupplyOrderStatus = (typeof SupplyOrderStatus)[keyof typeof SupplyOrderStatus]


export const WildberriesSupplyStatus: {
  DRAFT: 'DRAFT',
  CREATED: 'CREATED',
  IN_PROGRESS: 'IN_PROGRESS',
  DELIVERED: 'DELIVERED',
  CANCELLED: 'CANCELLED'
};

export type WildberriesSupplyStatus = (typeof WildberriesSupplyStatus)[keyof typeof WildberriesSupplyStatus]

}

export type OrganizationType = $Enums.OrganizationType

export const OrganizationType: typeof $Enums.OrganizationType

export type MarketplaceType = $Enums.MarketplaceType

export const MarketplaceType: typeof $Enums.MarketplaceType

export type CounterpartyRequestStatus = $Enums.CounterpartyRequestStatus

export const CounterpartyRequestStatus: typeof $Enums.CounterpartyRequestStatus

export type MessageType = $Enums.MessageType

export const MessageType: typeof $Enums.MessageType

export type EmployeeStatus = $Enums.EmployeeStatus

export const EmployeeStatus: typeof $Enums.EmployeeStatus

export type ScheduleStatus = $Enums.ScheduleStatus

export const ScheduleStatus: typeof $Enums.ScheduleStatus

export type SupplyOrderStatus = $Enums.SupplyOrderStatus

export const SupplyOrderStatus: typeof $Enums.SupplyOrderStatus

export type WildberriesSupplyStatus = $Enums.WildberriesSupplyStatus

export const WildberriesSupplyStatus: typeof $Enums.WildberriesSupplyStatus

/**
 * ##  Prisma Client ʲˢ
 *
 * Type-safe database client for TypeScript & Node.js
 * @example
 * ```
 * const prisma = new PrismaClient()
 * // Fetch zero or more Users
 * const users = await prisma.user.findMany()
 * ```
 *
 *
 * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client).
 */
export class PrismaClient<
  ClientOptions extends Prisma.PrismaClientOptions = Prisma.PrismaClientOptions,
  U = 'log' extends keyof ClientOptions ? ClientOptions['log'] extends Array<Prisma.LogLevel | Prisma.LogDefinition> ? Prisma.GetEvents<ClientOptions['log']> : never : never,
  ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs
> {
  [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['other'] }

    /**
   * ##  Prisma Client ʲˢ
   *
   * Type-safe database client for TypeScript & Node.js
   * @example
   * ```
   * const prisma = new PrismaClient()
   * // Fetch zero or more Users
   * const users = await prisma.user.findMany()
   * ```
   *
   *
   * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client).
   */

  constructor(optionsArg ?: Prisma.Subset<ClientOptions, Prisma.PrismaClientOptions>);
  $on<V extends U>(eventType: V, callback: (event: V extends 'query' ? Prisma.QueryEvent : Prisma.LogEvent) => void): PrismaClient;

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

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

  /**
   * Add a middleware
   * @deprecated since 4.16.0. For new code, prefer client extensions instead.
   * @see https://pris.ly/d/extensions
   */
  $use(cb: Prisma.Middleware): 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://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/raw-database-access).
   */
  $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://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/raw-database-access).
   */
  $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://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/raw-database-access).
   */
  $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://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/raw-database-access).
   */
  $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 }): $Utils.JsPromise<runtime.Types.Utils.UnwrapTuple<P>>

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


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

      /**
   * `prisma.user`: Exposes CRUD operations for the **User** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more Users
    * const users = await prisma.user.findMany()
    * ```
    */
  get user(): Prisma.UserDelegate<ExtArgs, ClientOptions>;

  /**
   * `prisma.admin`: Exposes CRUD operations for the **Admin** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more Admins
    * const admins = await prisma.admin.findMany()
    * ```
    */
  get admin(): Prisma.AdminDelegate<ExtArgs, ClientOptions>;

  /**
   * `prisma.smsCode`: Exposes CRUD operations for the **SmsCode** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more SmsCodes
    * const smsCodes = await prisma.smsCode.findMany()
    * ```
    */
  get smsCode(): Prisma.SmsCodeDelegate<ExtArgs, ClientOptions>;

  /**
   * `prisma.organization`: Exposes CRUD operations for the **Organization** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more Organizations
    * const organizations = await prisma.organization.findMany()
    * ```
    */
  get organization(): Prisma.OrganizationDelegate<ExtArgs, ClientOptions>;

  /**
   * `prisma.apiKey`: Exposes CRUD operations for the **ApiKey** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more ApiKeys
    * const apiKeys = await prisma.apiKey.findMany()
    * ```
    */
  get apiKey(): Prisma.ApiKeyDelegate<ExtArgs, ClientOptions>;

  /**
   * `prisma.counterpartyRequest`: Exposes CRUD operations for the **CounterpartyRequest** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more CounterpartyRequests
    * const counterpartyRequests = await prisma.counterpartyRequest.findMany()
    * ```
    */
  get counterpartyRequest(): Prisma.CounterpartyRequestDelegate<ExtArgs, ClientOptions>;

  /**
   * `prisma.counterparty`: Exposes CRUD operations for the **Counterparty** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more Counterparties
    * const counterparties = await prisma.counterparty.findMany()
    * ```
    */
  get counterparty(): Prisma.CounterpartyDelegate<ExtArgs, ClientOptions>;

  /**
   * `prisma.message`: Exposes CRUD operations for the **Message** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more Messages
    * const messages = await prisma.message.findMany()
    * ```
    */
  get message(): Prisma.MessageDelegate<ExtArgs, ClientOptions>;

  /**
   * `prisma.service`: Exposes CRUD operations for the **Service** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more Services
    * const services = await prisma.service.findMany()
    * ```
    */
  get service(): Prisma.ServiceDelegate<ExtArgs, ClientOptions>;

  /**
   * `prisma.supply`: Exposes CRUD operations for the **Supply** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more Supplies
    * const supplies = await prisma.supply.findMany()
    * ```
    */
  get supply(): Prisma.SupplyDelegate<ExtArgs, ClientOptions>;

  /**
   * `prisma.category`: Exposes CRUD operations for the **Category** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more Categories
    * const categories = await prisma.category.findMany()
    * ```
    */
  get category(): Prisma.CategoryDelegate<ExtArgs, ClientOptions>;

  /**
   * `prisma.product`: Exposes CRUD operations for the **Product** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more Products
    * const products = await prisma.product.findMany()
    * ```
    */
  get product(): Prisma.ProductDelegate<ExtArgs, ClientOptions>;

  /**
   * `prisma.cart`: Exposes CRUD operations for the **Cart** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more Carts
    * const carts = await prisma.cart.findMany()
    * ```
    */
  get cart(): Prisma.CartDelegate<ExtArgs, ClientOptions>;

  /**
   * `prisma.cartItem`: Exposes CRUD operations for the **CartItem** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more CartItems
    * const cartItems = await prisma.cartItem.findMany()
    * ```
    */
  get cartItem(): Prisma.CartItemDelegate<ExtArgs, ClientOptions>;

  /**
   * `prisma.favorites`: Exposes CRUD operations for the **Favorites** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more Favorites
    * const favorites = await prisma.favorites.findMany()
    * ```
    */
  get favorites(): Prisma.FavoritesDelegate<ExtArgs, ClientOptions>;

  /**
   * `prisma.employee`: Exposes CRUD operations for the **Employee** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more Employees
    * const employees = await prisma.employee.findMany()
    * ```
    */
  get employee(): Prisma.EmployeeDelegate<ExtArgs, ClientOptions>;

  /**
   * `prisma.employeeSchedule`: Exposes CRUD operations for the **EmployeeSchedule** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more EmployeeSchedules
    * const employeeSchedules = await prisma.employeeSchedule.findMany()
    * ```
    */
  get employeeSchedule(): Prisma.EmployeeScheduleDelegate<ExtArgs, ClientOptions>;

  /**
   * `prisma.wildberriesSupply`: Exposes CRUD operations for the **WildberriesSupply** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more WildberriesSupplies
    * const wildberriesSupplies = await prisma.wildberriesSupply.findMany()
    * ```
    */
  get wildberriesSupply(): Prisma.WildberriesSupplyDelegate<ExtArgs, ClientOptions>;

  /**
   * `prisma.wildberriesSupplyCard`: Exposes CRUD operations for the **WildberriesSupplyCard** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more WildberriesSupplyCards
    * const wildberriesSupplyCards = await prisma.wildberriesSupplyCard.findMany()
    * ```
    */
  get wildberriesSupplyCard(): Prisma.WildberriesSupplyCardDelegate<ExtArgs, ClientOptions>;

  /**
   * `prisma.logistics`: Exposes CRUD operations for the **Logistics** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more Logistics
    * const logistics = await prisma.logistics.findMany()
    * ```
    */
  get logistics(): Prisma.LogisticsDelegate<ExtArgs, ClientOptions>;

  /**
   * `prisma.supplyOrder`: Exposes CRUD operations for the **SupplyOrder** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more SupplyOrders
    * const supplyOrders = await prisma.supplyOrder.findMany()
    * ```
    */
  get supplyOrder(): Prisma.SupplyOrderDelegate<ExtArgs, ClientOptions>;

  /**
   * `prisma.supplyOrderItem`: Exposes CRUD operations for the **SupplyOrderItem** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more SupplyOrderItems
    * const supplyOrderItems = await prisma.supplyOrderItem.findMany()
    * ```
    */
  get supplyOrderItem(): Prisma.SupplyOrderItemDelegate<ExtArgs, ClientOptions>;

  /**
   * `prisma.supplySupplier`: Exposes CRUD operations for the **SupplySupplier** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more SupplySuppliers
    * const supplySuppliers = await prisma.supplySupplier.findMany()
    * ```
    */
  get supplySupplier(): Prisma.SupplySupplierDelegate<ExtArgs, ClientOptions>;
}

export namespace Prisma {
  export import DMMF = runtime.DMMF

  export type PrismaPromise<T> = $Public.PrismaPromise<T>

  /**
   * Validator
   */
  export import validator = runtime.Public.validator

  /**
   * Prisma Errors
   */
  export import PrismaClientKnownRequestError = runtime.PrismaClientKnownRequestError
  export import PrismaClientUnknownRequestError = runtime.PrismaClientUnknownRequestError
  export import PrismaClientRustPanicError = runtime.PrismaClientRustPanicError
  export import PrismaClientInitializationError = runtime.PrismaClientInitializationError
  export import PrismaClientValidationError = runtime.PrismaClientValidationError

  /**
   * Re-export of sql-template-tag
   */
  export import sql = runtime.sqltag
  export import empty = runtime.empty
  export import join = runtime.join
  export import raw = runtime.raw
  export import Sql = runtime.Sql



  /**
   * Decimal.js
   */
  export import Decimal = runtime.Decimal

  export type DecimalJsLike = runtime.DecimalJsLike

  /**
   * Metrics
   */
  export type Metrics = runtime.Metrics
  export type Metric<T> = runtime.Metric<T>
  export type MetricHistogram = runtime.MetricHistogram
  export type MetricHistogramBucket = runtime.MetricHistogramBucket

  /**
  * Extensions
  */
  export import Extension = $Extensions.UserArgs
  export import getExtensionContext = runtime.Extensions.getExtensionContext
  export import Args = $Public.Args
  export import Payload = $Public.Payload
  export import Result = $Public.Result
  export import Exact = $Public.Exact

  /**
   * Prisma Client JS version: 6.12.0
   * Query Engine version: 8047c96bbd92db98a2abc7c9323ce77c02c89dbc
   */
  export type PrismaVersion = {
    client: string
  }

  export const prismaVersion: PrismaVersion

  /**
   * Utility Types
   */


  export import JsonObject = runtime.JsonObject
  export import JsonArray = runtime.JsonArray
  export import JsonValue = runtime.JsonValue
  export import InputJsonObject = runtime.InputJsonObject
  export import InputJsonArray = runtime.InputJsonArray
  export import InputJsonValue = runtime.InputJsonValue

  /**
   * Types of the values used to represent different kinds of `null` values when working with JSON fields.
   *
   * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field
   */
  namespace NullTypes {
    /**
    * Type of `Prisma.DbNull`.
    *
    * You cannot use other instances of this class. Please use the `Prisma.DbNull` value.
    *
    * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field
    */
    class DbNull {
      private DbNull: never
      private constructor()
    }

    /**
    * Type of `Prisma.JsonNull`.
    *
    * You cannot use other instances of this class. Please use the `Prisma.JsonNull` value.
    *
    * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field
    */
    class JsonNull {
      private JsonNull: never
      private constructor()
    }

    /**
    * Type of `Prisma.AnyNull`.
    *
    * You cannot use other instances of this class. Please use the `Prisma.AnyNull` value.
    *
    * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field
    */
    class AnyNull {
      private AnyNull: never
      private constructor()
    }
  }

  /**
   * Helper for filtering JSON entries that have `null` on the database (empty on the db)
   *
   * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field
   */
  export const DbNull: NullTypes.DbNull

  /**
   * Helper for filtering JSON entries that have JSON `null` values (not empty on the db)
   *
   * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field
   */
  export const JsonNull: NullTypes.JsonNull

  /**
   * Helper for filtering JSON entries that are `Prisma.DbNull` or `Prisma.JsonNull`
   *
   * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field
   */
  export const AnyNull: NullTypes.AnyNull

  type SelectAndInclude = {
    select: any
    include: any
  }

  type SelectAndOmit = {
    select: any
    omit: any
  }

  /**
   * Get the type of the value, that the Promise holds.
   */
  export type PromiseType<T extends PromiseLike<any>> = T extends PromiseLike<infer U> ? U : T;

  /**
   * Get the return type of a function which returns a Promise.
   */
  export type PromiseReturnType<T extends (...args: any) => $Utils.JsPromise<any>> = PromiseType<ReturnType<T>>

  /**
   * From T, pick a set of properties whose keys are in the union K
   */
  type Prisma__Pick<T, K extends keyof T> = {
      [P in K]: T[P];
  };


  export type Enumerable<T> = T | Array<T>;

  export type RequiredKeys<T> = {
    [K in keyof T]-?: {} extends Prisma__Pick<T, K> ? never : K
  }[keyof T]

  export type TruthyKeys<T> = keyof {
    [K in keyof T as T[K] extends false | undefined | null ? never : K]: K
  }

  export type TrueKeys<T> = TruthyKeys<Prisma__Pick<T, RequiredKeys<T>>>

  /**
   * Subset
   * @desc From `T` pick properties that exist in `U`. Simple version of Intersection
   */
  export type Subset<T, U> = {
    [key in keyof T]: key extends keyof U ? T[key] : never;
  };

  /**
   * SelectSubset
   * @desc From `T` pick properties that exist in `U`. Simple version of Intersection.
   * Additionally, it validates, if both select and include are present. If the case, it errors.
   */
  export type SelectSubset<T, U> = {
    [key in keyof T]: key extends keyof U ? T[key] : never
  } &
    (T extends SelectAndInclude
      ? 'Please either choose `select` or `include`.'
      : T extends SelectAndOmit
        ? 'Please either choose `select` or `omit`.'
        : {})

  /**
   * Subset + Intersection
   * @desc From `T` pick properties that exist in `U` and intersect `K`
   */
  export type SubsetIntersection<T, U, K> = {
    [key in keyof T]: key extends keyof U ? T[key] : never
  } &
    K

  type Without<T, U> = { [P in Exclude<keyof T, keyof U>]?: never };

  /**
   * XOR is needed to have a real mutually exclusive union type
   * https://stackoverflow.com/questions/42123407/does-typescript-support-mutually-exclusive-types
   */
  type XOR<T, U> =
    T extends object ?
    U extends object ?
      (Without<T, U> & U) | (Without<U, T> & T)
    : U : T


  /**
   * Is T a Record?
   */
  type IsObject<T extends any> = T extends Array<any>
  ? False
  : T extends Date
  ? False
  : T extends Uint8Array
  ? False
  : T extends BigInt
  ? False
  : T extends object
  ? True
  : False


  /**
   * If it's T[], return T
   */
  export type UnEnumerate<T extends unknown> = T extends Array<infer U> ? U : T

  /**
   * From ts-toolbelt
   */

  type __Either<O extends object, K extends Key> = Omit<O, K> &
    {
      // Merge all but K
      [P in K]: Prisma__Pick<O, P & keyof O> // With K possibilities
    }[K]

  type EitherStrict<O extends object, K extends Key> = Strict<__Either<O, K>>

  type EitherLoose<O extends object, K extends Key> = ComputeRaw<__Either<O, K>>

  type _Either<
    O extends object,
    K extends Key,
    strict extends Boolean
  > = {
    1: EitherStrict<O, K>
    0: EitherLoose<O, K>
  }[strict]

  type Either<
    O extends object,
    K extends Key,
    strict extends Boolean = 1
  > = O extends unknown ? _Either<O, K, strict> : never

  export type Union = any

  type PatchUndefined<O extends object, O1 extends object> = {
    [K in keyof O]: O[K] extends undefined ? At<O1, K> : O[K]
  } & {}

  /** Helper Types for "Merge" **/
  export type IntersectOf<U extends Union> = (
    U extends unknown ? (k: U) => void : never
  ) extends (k: infer I) => void
    ? I
    : never

  export type Overwrite<O extends object, O1 extends object> = {
      [K in keyof O]: K extends keyof O1 ? O1[K] : O[K];
  } & {};

  type _Merge<U extends object> = IntersectOf<Overwrite<U, {
      [K in keyof U]-?: At<U, K>;
  }>>;

  type Key = string | number | symbol;
  type AtBasic<O extends object, K extends Key> = K extends keyof O ? O[K] : never;
  type AtStrict<O extends object, K extends Key> = O[K & keyof O];
  type AtLoose<O extends object, K extends Key> = O extends unknown ? AtStrict<O, K> : never;
  export type At<O extends object, K extends Key, strict extends Boolean = 1> = {
      1: AtStrict<O, K>;
      0: AtLoose<O, K>;
  }[strict];

  export type ComputeRaw<A extends any> = A extends Function ? A : {
    [K in keyof A]: A[K];
  } & {};

  export type OptionalFlat<O> = {
    [K in keyof O]?: O[K];
  } & {};

  type _Record<K extends keyof any, T> = {
    [P in K]: T;
  };

  // cause typescript not to expand types and preserve names
  type NoExpand<T> = T extends unknown ? T : never;

  // this type assumes the passed object is entirely optional
  type AtLeast<O extends object, K extends string> = NoExpand<
    O extends unknown
    ? | (K extends keyof O ? { [P in K]: O[P] } & O : O)
      | {[P in keyof O as P extends K ? P : never]-?: O[P]} & O
    : never>;

  type _Strict<U, _U = U> = U extends unknown ? U & OptionalFlat<_Record<Exclude<Keys<_U>, keyof U>, never>> : never;

  export type Strict<U extends object> = ComputeRaw<_Strict<U>>;
  /** End Helper Types for "Merge" **/

  export type Merge<U extends object> = ComputeRaw<_Merge<Strict<U>>>;

  /**
  A [[Boolean]]
  */
  export type Boolean = True | False

  // /**
  // 1
  // */
  export type True = 1

  /**
  0
  */
  export type False = 0

  export type Not<B extends Boolean> = {
    0: 1
    1: 0
  }[B]

  export type Extends<A1 extends any, A2 extends any> = [A1] extends [never]
    ? 0 // anything `never` is false
    : A1 extends A2
    ? 1
    : 0

  export type Has<U extends Union, U1 extends Union> = Not<
    Extends<Exclude<U1, U>, U1>
  >

  export type Or<B1 extends Boolean, B2 extends Boolean> = {
    0: {
      0: 0
      1: 1
    }
    1: {
      0: 1
      1: 1
    }
  }[B1][B2]

  export type Keys<U extends Union> = U extends unknown ? keyof U : never

  type Cast<A, B> = A extends B ? A : B;

  export const type: unique symbol;



  /**
   * Used by group by
   */

  export type GetScalarType<T, O> = O extends object ? {
    [P in keyof T]: P extends keyof O
      ? O[P]
      : never
  } : never

  type FieldPaths<
    T,
    U = Omit<T, '_avg' | '_sum' | '_count' | '_min' | '_max'>
  > = IsObject<T> extends True ? U : T

  type GetHavingFields<T> = {
    [K in keyof T]: Or<
      Or<Extends<'OR', K>, Extends<'AND', K>>,
      Extends<'NOT', K>
    > extends True
      ? // infer is only needed to not hit TS limit
        // based on the brilliant idea of Pierre-Antoine Mills
        // https://github.com/microsoft/TypeScript/issues/30188#issuecomment-478938437
        T[K] extends infer TK
        ? GetHavingFields<UnEnumerate<TK> extends object ? Merge<UnEnumerate<TK>> : never>
        : never
      : {} extends FieldPaths<T[K]>
      ? never
      : K
  }[keyof T]

  /**
   * Convert tuple to union
   */
  type _TupleToUnion<T> = T extends (infer E)[] ? E : never
  type TupleToUnion<K extends readonly any[]> = _TupleToUnion<K>
  type MaybeTupleToUnion<T> = T extends any[] ? TupleToUnion<T> : T

  /**
   * Like `Pick`, but additionally can also accept an array of keys
   */
  type PickEnumerable<T, K extends Enumerable<keyof T> | keyof T> = Prisma__Pick<T, MaybeTupleToUnion<K>>

  /**
   * Exclude all keys with underscores
   */
  type ExcludeUnderscoreKeys<T extends string> = T extends `_${string}` ? never : T


  export type FieldRef<Model, FieldType> = runtime.FieldRef<Model, FieldType>

  type FieldRefInputType<Model, FieldType> = Model extends never ? never : FieldRef<Model, FieldType>


  export const ModelName: {
    User: 'User',
    Admin: 'Admin',
    SmsCode: 'SmsCode',
    Organization: 'Organization',
    ApiKey: 'ApiKey',
    CounterpartyRequest: 'CounterpartyRequest',
    Counterparty: 'Counterparty',
    Message: 'Message',
    Service: 'Service',
    Supply: 'Supply',
    Category: 'Category',
    Product: 'Product',
    Cart: 'Cart',
    CartItem: 'CartItem',
    Favorites: 'Favorites',
    Employee: 'Employee',
    EmployeeSchedule: 'EmployeeSchedule',
    WildberriesSupply: 'WildberriesSupply',
    WildberriesSupplyCard: 'WildberriesSupplyCard',
    Logistics: 'Logistics',
    SupplyOrder: 'SupplyOrder',
    SupplyOrderItem: 'SupplyOrderItem',
    SupplySupplier: 'SupplySupplier'
  };

  export type ModelName = (typeof ModelName)[keyof typeof ModelName]


  export type Datasources = {
    db?: Datasource
  }

  interface TypeMapCb<ClientOptions = {}> extends $Utils.Fn<{extArgs: $Extensions.InternalArgs }, $Utils.Record<string, any>> {
    returns: Prisma.TypeMap<this['params']['extArgs'], ClientOptions extends { omit: infer OmitOptions } ? OmitOptions : {}>
  }

  export type TypeMap<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> = {
    globalOmitOptions: {
      omit: GlobalOmitOptions
    }
    meta: {
      modelProps: "user" | "admin" | "smsCode" | "organization" | "apiKey" | "counterpartyRequest" | "counterparty" | "message" | "service" | "supply" | "category" | "product" | "cart" | "cartItem" | "favorites" | "employee" | "employeeSchedule" | "wildberriesSupply" | "wildberriesSupplyCard" | "logistics" | "supplyOrder" | "supplyOrderItem" | "supplySupplier"
      txIsolationLevel: Prisma.TransactionIsolationLevel
    }
    model: {
      User: {
        payload: Prisma.$UserPayload<ExtArgs>
        fields: Prisma.UserFieldRefs
        operations: {
          findUnique: {
            args: Prisma.UserFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.UserFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserPayload>
          }
          findFirst: {
            args: Prisma.UserFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.UserFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserPayload>
          }
          findMany: {
            args: Prisma.UserFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserPayload>[]
          }
          create: {
            args: Prisma.UserCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserPayload>
          }
          createMany: {
            args: Prisma.UserCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.UserCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserPayload>[]
          }
          delete: {
            args: Prisma.UserDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserPayload>
          }
          update: {
            args: Prisma.UserUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserPayload>
          }
          deleteMany: {
            args: Prisma.UserDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.UserUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.UserUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserPayload>[]
          }
          upsert: {
            args: Prisma.UserUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserPayload>
          }
          aggregate: {
            args: Prisma.UserAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateUser>
          }
          groupBy: {
            args: Prisma.UserGroupByArgs<ExtArgs>
            result: $Utils.Optional<UserGroupByOutputType>[]
          }
          count: {
            args: Prisma.UserCountArgs<ExtArgs>
            result: $Utils.Optional<UserCountAggregateOutputType> | number
          }
        }
      }
      Admin: {
        payload: Prisma.$AdminPayload<ExtArgs>
        fields: Prisma.AdminFieldRefs
        operations: {
          findUnique: {
            args: Prisma.AdminFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AdminPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.AdminFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AdminPayload>
          }
          findFirst: {
            args: Prisma.AdminFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AdminPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.AdminFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AdminPayload>
          }
          findMany: {
            args: Prisma.AdminFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AdminPayload>[]
          }
          create: {
            args: Prisma.AdminCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AdminPayload>
          }
          createMany: {
            args: Prisma.AdminCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.AdminCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AdminPayload>[]
          }
          delete: {
            args: Prisma.AdminDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AdminPayload>
          }
          update: {
            args: Prisma.AdminUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AdminPayload>
          }
          deleteMany: {
            args: Prisma.AdminDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.AdminUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.AdminUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AdminPayload>[]
          }
          upsert: {
            args: Prisma.AdminUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AdminPayload>
          }
          aggregate: {
            args: Prisma.AdminAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateAdmin>
          }
          groupBy: {
            args: Prisma.AdminGroupByArgs<ExtArgs>
            result: $Utils.Optional<AdminGroupByOutputType>[]
          }
          count: {
            args: Prisma.AdminCountArgs<ExtArgs>
            result: $Utils.Optional<AdminCountAggregateOutputType> | number
          }
        }
      }
      SmsCode: {
        payload: Prisma.$SmsCodePayload<ExtArgs>
        fields: Prisma.SmsCodeFieldRefs
        operations: {
          findUnique: {
            args: Prisma.SmsCodeFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SmsCodePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.SmsCodeFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SmsCodePayload>
          }
          findFirst: {
            args: Prisma.SmsCodeFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SmsCodePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.SmsCodeFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SmsCodePayload>
          }
          findMany: {
            args: Prisma.SmsCodeFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SmsCodePayload>[]
          }
          create: {
            args: Prisma.SmsCodeCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SmsCodePayload>
          }
          createMany: {
            args: Prisma.SmsCodeCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.SmsCodeCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SmsCodePayload>[]
          }
          delete: {
            args: Prisma.SmsCodeDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SmsCodePayload>
          }
          update: {
            args: Prisma.SmsCodeUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SmsCodePayload>
          }
          deleteMany: {
            args: Prisma.SmsCodeDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.SmsCodeUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.SmsCodeUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SmsCodePayload>[]
          }
          upsert: {
            args: Prisma.SmsCodeUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SmsCodePayload>
          }
          aggregate: {
            args: Prisma.SmsCodeAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateSmsCode>
          }
          groupBy: {
            args: Prisma.SmsCodeGroupByArgs<ExtArgs>
            result: $Utils.Optional<SmsCodeGroupByOutputType>[]
          }
          count: {
            args: Prisma.SmsCodeCountArgs<ExtArgs>
            result: $Utils.Optional<SmsCodeCountAggregateOutputType> | number
          }
        }
      }
      Organization: {
        payload: Prisma.$OrganizationPayload<ExtArgs>
        fields: Prisma.OrganizationFieldRefs
        operations: {
          findUnique: {
            args: Prisma.OrganizationFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OrganizationPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.OrganizationFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OrganizationPayload>
          }
          findFirst: {
            args: Prisma.OrganizationFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OrganizationPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.OrganizationFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OrganizationPayload>
          }
          findMany: {
            args: Prisma.OrganizationFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OrganizationPayload>[]
          }
          create: {
            args: Prisma.OrganizationCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OrganizationPayload>
          }
          createMany: {
            args: Prisma.OrganizationCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.OrganizationCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OrganizationPayload>[]
          }
          delete: {
            args: Prisma.OrganizationDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OrganizationPayload>
          }
          update: {
            args: Prisma.OrganizationUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OrganizationPayload>
          }
          deleteMany: {
            args: Prisma.OrganizationDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.OrganizationUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.OrganizationUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OrganizationPayload>[]
          }
          upsert: {
            args: Prisma.OrganizationUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OrganizationPayload>
          }
          aggregate: {
            args: Prisma.OrganizationAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateOrganization>
          }
          groupBy: {
            args: Prisma.OrganizationGroupByArgs<ExtArgs>
            result: $Utils.Optional<OrganizationGroupByOutputType>[]
          }
          count: {
            args: Prisma.OrganizationCountArgs<ExtArgs>
            result: $Utils.Optional<OrganizationCountAggregateOutputType> | number
          }
        }
      }
      ApiKey: {
        payload: Prisma.$ApiKeyPayload<ExtArgs>
        fields: Prisma.ApiKeyFieldRefs
        operations: {
          findUnique: {
            args: Prisma.ApiKeyFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApiKeyPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.ApiKeyFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApiKeyPayload>
          }
          findFirst: {
            args: Prisma.ApiKeyFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApiKeyPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.ApiKeyFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApiKeyPayload>
          }
          findMany: {
            args: Prisma.ApiKeyFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApiKeyPayload>[]
          }
          create: {
            args: Prisma.ApiKeyCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApiKeyPayload>
          }
          createMany: {
            args: Prisma.ApiKeyCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.ApiKeyCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApiKeyPayload>[]
          }
          delete: {
            args: Prisma.ApiKeyDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApiKeyPayload>
          }
          update: {
            args: Prisma.ApiKeyUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApiKeyPayload>
          }
          deleteMany: {
            args: Prisma.ApiKeyDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.ApiKeyUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.ApiKeyUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApiKeyPayload>[]
          }
          upsert: {
            args: Prisma.ApiKeyUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApiKeyPayload>
          }
          aggregate: {
            args: Prisma.ApiKeyAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateApiKey>
          }
          groupBy: {
            args: Prisma.ApiKeyGroupByArgs<ExtArgs>
            result: $Utils.Optional<ApiKeyGroupByOutputType>[]
          }
          count: {
            args: Prisma.ApiKeyCountArgs<ExtArgs>
            result: $Utils.Optional<ApiKeyCountAggregateOutputType> | number
          }
        }
      }
      CounterpartyRequest: {
        payload: Prisma.$CounterpartyRequestPayload<ExtArgs>
        fields: Prisma.CounterpartyRequestFieldRefs
        operations: {
          findUnique: {
            args: Prisma.CounterpartyRequestFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CounterpartyRequestPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.CounterpartyRequestFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CounterpartyRequestPayload>
          }
          findFirst: {
            args: Prisma.CounterpartyRequestFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CounterpartyRequestPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.CounterpartyRequestFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CounterpartyRequestPayload>
          }
          findMany: {
            args: Prisma.CounterpartyRequestFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CounterpartyRequestPayload>[]
          }
          create: {
            args: Prisma.CounterpartyRequestCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CounterpartyRequestPayload>
          }
          createMany: {
            args: Prisma.CounterpartyRequestCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.CounterpartyRequestCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CounterpartyRequestPayload>[]
          }
          delete: {
            args: Prisma.CounterpartyRequestDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CounterpartyRequestPayload>
          }
          update: {
            args: Prisma.CounterpartyRequestUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CounterpartyRequestPayload>
          }
          deleteMany: {
            args: Prisma.CounterpartyRequestDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.CounterpartyRequestUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.CounterpartyRequestUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CounterpartyRequestPayload>[]
          }
          upsert: {
            args: Prisma.CounterpartyRequestUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CounterpartyRequestPayload>
          }
          aggregate: {
            args: Prisma.CounterpartyRequestAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateCounterpartyRequest>
          }
          groupBy: {
            args: Prisma.CounterpartyRequestGroupByArgs<ExtArgs>
            result: $Utils.Optional<CounterpartyRequestGroupByOutputType>[]
          }
          count: {
            args: Prisma.CounterpartyRequestCountArgs<ExtArgs>
            result: $Utils.Optional<CounterpartyRequestCountAggregateOutputType> | number
          }
        }
      }
      Counterparty: {
        payload: Prisma.$CounterpartyPayload<ExtArgs>
        fields: Prisma.CounterpartyFieldRefs
        operations: {
          findUnique: {
            args: Prisma.CounterpartyFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CounterpartyPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.CounterpartyFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CounterpartyPayload>
          }
          findFirst: {
            args: Prisma.CounterpartyFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CounterpartyPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.CounterpartyFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CounterpartyPayload>
          }
          findMany: {
            args: Prisma.CounterpartyFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CounterpartyPayload>[]
          }
          create: {
            args: Prisma.CounterpartyCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CounterpartyPayload>
          }
          createMany: {
            args: Prisma.CounterpartyCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.CounterpartyCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CounterpartyPayload>[]
          }
          delete: {
            args: Prisma.CounterpartyDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CounterpartyPayload>
          }
          update: {
            args: Prisma.CounterpartyUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CounterpartyPayload>
          }
          deleteMany: {
            args: Prisma.CounterpartyDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.CounterpartyUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.CounterpartyUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CounterpartyPayload>[]
          }
          upsert: {
            args: Prisma.CounterpartyUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CounterpartyPayload>
          }
          aggregate: {
            args: Prisma.CounterpartyAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateCounterparty>
          }
          groupBy: {
            args: Prisma.CounterpartyGroupByArgs<ExtArgs>
            result: $Utils.Optional<CounterpartyGroupByOutputType>[]
          }
          count: {
            args: Prisma.CounterpartyCountArgs<ExtArgs>
            result: $Utils.Optional<CounterpartyCountAggregateOutputType> | number
          }
        }
      }
      Message: {
        payload: Prisma.$MessagePayload<ExtArgs>
        fields: Prisma.MessageFieldRefs
        operations: {
          findUnique: {
            args: Prisma.MessageFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MessagePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.MessageFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MessagePayload>
          }
          findFirst: {
            args: Prisma.MessageFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MessagePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.MessageFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MessagePayload>
          }
          findMany: {
            args: Prisma.MessageFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MessagePayload>[]
          }
          create: {
            args: Prisma.MessageCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MessagePayload>
          }
          createMany: {
            args: Prisma.MessageCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.MessageCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MessagePayload>[]
          }
          delete: {
            args: Prisma.MessageDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MessagePayload>
          }
          update: {
            args: Prisma.MessageUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MessagePayload>
          }
          deleteMany: {
            args: Prisma.MessageDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.MessageUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.MessageUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MessagePayload>[]
          }
          upsert: {
            args: Prisma.MessageUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MessagePayload>
          }
          aggregate: {
            args: Prisma.MessageAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateMessage>
          }
          groupBy: {
            args: Prisma.MessageGroupByArgs<ExtArgs>
            result: $Utils.Optional<MessageGroupByOutputType>[]
          }
          count: {
            args: Prisma.MessageCountArgs<ExtArgs>
            result: $Utils.Optional<MessageCountAggregateOutputType> | number
          }
        }
      }
      Service: {
        payload: Prisma.$ServicePayload<ExtArgs>
        fields: Prisma.ServiceFieldRefs
        operations: {
          findUnique: {
            args: Prisma.ServiceFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ServicePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.ServiceFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ServicePayload>
          }
          findFirst: {
            args: Prisma.ServiceFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ServicePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.ServiceFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ServicePayload>
          }
          findMany: {
            args: Prisma.ServiceFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ServicePayload>[]
          }
          create: {
            args: Prisma.ServiceCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ServicePayload>
          }
          createMany: {
            args: Prisma.ServiceCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.ServiceCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ServicePayload>[]
          }
          delete: {
            args: Prisma.ServiceDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ServicePayload>
          }
          update: {
            args: Prisma.ServiceUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ServicePayload>
          }
          deleteMany: {
            args: Prisma.ServiceDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.ServiceUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.ServiceUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ServicePayload>[]
          }
          upsert: {
            args: Prisma.ServiceUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ServicePayload>
          }
          aggregate: {
            args: Prisma.ServiceAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateService>
          }
          groupBy: {
            args: Prisma.ServiceGroupByArgs<ExtArgs>
            result: $Utils.Optional<ServiceGroupByOutputType>[]
          }
          count: {
            args: Prisma.ServiceCountArgs<ExtArgs>
            result: $Utils.Optional<ServiceCountAggregateOutputType> | number
          }
        }
      }
      Supply: {
        payload: Prisma.$SupplyPayload<ExtArgs>
        fields: Prisma.SupplyFieldRefs
        operations: {
          findUnique: {
            args: Prisma.SupplyFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplyPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.SupplyFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplyPayload>
          }
          findFirst: {
            args: Prisma.SupplyFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplyPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.SupplyFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplyPayload>
          }
          findMany: {
            args: Prisma.SupplyFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplyPayload>[]
          }
          create: {
            args: Prisma.SupplyCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplyPayload>
          }
          createMany: {
            args: Prisma.SupplyCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.SupplyCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplyPayload>[]
          }
          delete: {
            args: Prisma.SupplyDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplyPayload>
          }
          update: {
            args: Prisma.SupplyUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplyPayload>
          }
          deleteMany: {
            args: Prisma.SupplyDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.SupplyUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.SupplyUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplyPayload>[]
          }
          upsert: {
            args: Prisma.SupplyUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplyPayload>
          }
          aggregate: {
            args: Prisma.SupplyAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateSupply>
          }
          groupBy: {
            args: Prisma.SupplyGroupByArgs<ExtArgs>
            result: $Utils.Optional<SupplyGroupByOutputType>[]
          }
          count: {
            args: Prisma.SupplyCountArgs<ExtArgs>
            result: $Utils.Optional<SupplyCountAggregateOutputType> | number
          }
        }
      }
      Category: {
        payload: Prisma.$CategoryPayload<ExtArgs>
        fields: Prisma.CategoryFieldRefs
        operations: {
          findUnique: {
            args: Prisma.CategoryFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CategoryPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.CategoryFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CategoryPayload>
          }
          findFirst: {
            args: Prisma.CategoryFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CategoryPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.CategoryFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CategoryPayload>
          }
          findMany: {
            args: Prisma.CategoryFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CategoryPayload>[]
          }
          create: {
            args: Prisma.CategoryCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CategoryPayload>
          }
          createMany: {
            args: Prisma.CategoryCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.CategoryCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CategoryPayload>[]
          }
          delete: {
            args: Prisma.CategoryDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CategoryPayload>
          }
          update: {
            args: Prisma.CategoryUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CategoryPayload>
          }
          deleteMany: {
            args: Prisma.CategoryDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.CategoryUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.CategoryUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CategoryPayload>[]
          }
          upsert: {
            args: Prisma.CategoryUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CategoryPayload>
          }
          aggregate: {
            args: Prisma.CategoryAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateCategory>
          }
          groupBy: {
            args: Prisma.CategoryGroupByArgs<ExtArgs>
            result: $Utils.Optional<CategoryGroupByOutputType>[]
          }
          count: {
            args: Prisma.CategoryCountArgs<ExtArgs>
            result: $Utils.Optional<CategoryCountAggregateOutputType> | number
          }
        }
      }
      Product: {
        payload: Prisma.$ProductPayload<ExtArgs>
        fields: Prisma.ProductFieldRefs
        operations: {
          findUnique: {
            args: Prisma.ProductFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ProductPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.ProductFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ProductPayload>
          }
          findFirst: {
            args: Prisma.ProductFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ProductPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.ProductFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ProductPayload>
          }
          findMany: {
            args: Prisma.ProductFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ProductPayload>[]
          }
          create: {
            args: Prisma.ProductCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ProductPayload>
          }
          createMany: {
            args: Prisma.ProductCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.ProductCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ProductPayload>[]
          }
          delete: {
            args: Prisma.ProductDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ProductPayload>
          }
          update: {
            args: Prisma.ProductUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ProductPayload>
          }
          deleteMany: {
            args: Prisma.ProductDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.ProductUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.ProductUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ProductPayload>[]
          }
          upsert: {
            args: Prisma.ProductUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ProductPayload>
          }
          aggregate: {
            args: Prisma.ProductAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateProduct>
          }
          groupBy: {
            args: Prisma.ProductGroupByArgs<ExtArgs>
            result: $Utils.Optional<ProductGroupByOutputType>[]
          }
          count: {
            args: Prisma.ProductCountArgs<ExtArgs>
            result: $Utils.Optional<ProductCountAggregateOutputType> | number
          }
        }
      }
      Cart: {
        payload: Prisma.$CartPayload<ExtArgs>
        fields: Prisma.CartFieldRefs
        operations: {
          findUnique: {
            args: Prisma.CartFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CartPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.CartFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CartPayload>
          }
          findFirst: {
            args: Prisma.CartFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CartPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.CartFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CartPayload>
          }
          findMany: {
            args: Prisma.CartFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CartPayload>[]
          }
          create: {
            args: Prisma.CartCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CartPayload>
          }
          createMany: {
            args: Prisma.CartCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.CartCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CartPayload>[]
          }
          delete: {
            args: Prisma.CartDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CartPayload>
          }
          update: {
            args: Prisma.CartUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CartPayload>
          }
          deleteMany: {
            args: Prisma.CartDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.CartUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.CartUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CartPayload>[]
          }
          upsert: {
            args: Prisma.CartUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CartPayload>
          }
          aggregate: {
            args: Prisma.CartAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateCart>
          }
          groupBy: {
            args: Prisma.CartGroupByArgs<ExtArgs>
            result: $Utils.Optional<CartGroupByOutputType>[]
          }
          count: {
            args: Prisma.CartCountArgs<ExtArgs>
            result: $Utils.Optional<CartCountAggregateOutputType> | number
          }
        }
      }
      CartItem: {
        payload: Prisma.$CartItemPayload<ExtArgs>
        fields: Prisma.CartItemFieldRefs
        operations: {
          findUnique: {
            args: Prisma.CartItemFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CartItemPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.CartItemFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CartItemPayload>
          }
          findFirst: {
            args: Prisma.CartItemFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CartItemPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.CartItemFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CartItemPayload>
          }
          findMany: {
            args: Prisma.CartItemFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CartItemPayload>[]
          }
          create: {
            args: Prisma.CartItemCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CartItemPayload>
          }
          createMany: {
            args: Prisma.CartItemCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.CartItemCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CartItemPayload>[]
          }
          delete: {
            args: Prisma.CartItemDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CartItemPayload>
          }
          update: {
            args: Prisma.CartItemUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CartItemPayload>
          }
          deleteMany: {
            args: Prisma.CartItemDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.CartItemUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.CartItemUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CartItemPayload>[]
          }
          upsert: {
            args: Prisma.CartItemUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CartItemPayload>
          }
          aggregate: {
            args: Prisma.CartItemAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateCartItem>
          }
          groupBy: {
            args: Prisma.CartItemGroupByArgs<ExtArgs>
            result: $Utils.Optional<CartItemGroupByOutputType>[]
          }
          count: {
            args: Prisma.CartItemCountArgs<ExtArgs>
            result: $Utils.Optional<CartItemCountAggregateOutputType> | number
          }
        }
      }
      Favorites: {
        payload: Prisma.$FavoritesPayload<ExtArgs>
        fields: Prisma.FavoritesFieldRefs
        operations: {
          findUnique: {
            args: Prisma.FavoritesFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FavoritesPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.FavoritesFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FavoritesPayload>
          }
          findFirst: {
            args: Prisma.FavoritesFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FavoritesPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.FavoritesFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FavoritesPayload>
          }
          findMany: {
            args: Prisma.FavoritesFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FavoritesPayload>[]
          }
          create: {
            args: Prisma.FavoritesCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FavoritesPayload>
          }
          createMany: {
            args: Prisma.FavoritesCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.FavoritesCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FavoritesPayload>[]
          }
          delete: {
            args: Prisma.FavoritesDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FavoritesPayload>
          }
          update: {
            args: Prisma.FavoritesUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FavoritesPayload>
          }
          deleteMany: {
            args: Prisma.FavoritesDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.FavoritesUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.FavoritesUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FavoritesPayload>[]
          }
          upsert: {
            args: Prisma.FavoritesUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FavoritesPayload>
          }
          aggregate: {
            args: Prisma.FavoritesAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateFavorites>
          }
          groupBy: {
            args: Prisma.FavoritesGroupByArgs<ExtArgs>
            result: $Utils.Optional<FavoritesGroupByOutputType>[]
          }
          count: {
            args: Prisma.FavoritesCountArgs<ExtArgs>
            result: $Utils.Optional<FavoritesCountAggregateOutputType> | number
          }
        }
      }
      Employee: {
        payload: Prisma.$EmployeePayload<ExtArgs>
        fields: Prisma.EmployeeFieldRefs
        operations: {
          findUnique: {
            args: Prisma.EmployeeFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EmployeePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.EmployeeFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EmployeePayload>
          }
          findFirst: {
            args: Prisma.EmployeeFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EmployeePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.EmployeeFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EmployeePayload>
          }
          findMany: {
            args: Prisma.EmployeeFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EmployeePayload>[]
          }
          create: {
            args: Prisma.EmployeeCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EmployeePayload>
          }
          createMany: {
            args: Prisma.EmployeeCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.EmployeeCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EmployeePayload>[]
          }
          delete: {
            args: Prisma.EmployeeDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EmployeePayload>
          }
          update: {
            args: Prisma.EmployeeUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EmployeePayload>
          }
          deleteMany: {
            args: Prisma.EmployeeDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.EmployeeUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.EmployeeUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EmployeePayload>[]
          }
          upsert: {
            args: Prisma.EmployeeUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EmployeePayload>
          }
          aggregate: {
            args: Prisma.EmployeeAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateEmployee>
          }
          groupBy: {
            args: Prisma.EmployeeGroupByArgs<ExtArgs>
            result: $Utils.Optional<EmployeeGroupByOutputType>[]
          }
          count: {
            args: Prisma.EmployeeCountArgs<ExtArgs>
            result: $Utils.Optional<EmployeeCountAggregateOutputType> | number
          }
        }
      }
      EmployeeSchedule: {
        payload: Prisma.$EmployeeSchedulePayload<ExtArgs>
        fields: Prisma.EmployeeScheduleFieldRefs
        operations: {
          findUnique: {
            args: Prisma.EmployeeScheduleFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EmployeeSchedulePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.EmployeeScheduleFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EmployeeSchedulePayload>
          }
          findFirst: {
            args: Prisma.EmployeeScheduleFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EmployeeSchedulePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.EmployeeScheduleFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EmployeeSchedulePayload>
          }
          findMany: {
            args: Prisma.EmployeeScheduleFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EmployeeSchedulePayload>[]
          }
          create: {
            args: Prisma.EmployeeScheduleCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EmployeeSchedulePayload>
          }
          createMany: {
            args: Prisma.EmployeeScheduleCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.EmployeeScheduleCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EmployeeSchedulePayload>[]
          }
          delete: {
            args: Prisma.EmployeeScheduleDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EmployeeSchedulePayload>
          }
          update: {
            args: Prisma.EmployeeScheduleUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EmployeeSchedulePayload>
          }
          deleteMany: {
            args: Prisma.EmployeeScheduleDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.EmployeeScheduleUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.EmployeeScheduleUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EmployeeSchedulePayload>[]
          }
          upsert: {
            args: Prisma.EmployeeScheduleUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EmployeeSchedulePayload>
          }
          aggregate: {
            args: Prisma.EmployeeScheduleAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateEmployeeSchedule>
          }
          groupBy: {
            args: Prisma.EmployeeScheduleGroupByArgs<ExtArgs>
            result: $Utils.Optional<EmployeeScheduleGroupByOutputType>[]
          }
          count: {
            args: Prisma.EmployeeScheduleCountArgs<ExtArgs>
            result: $Utils.Optional<EmployeeScheduleCountAggregateOutputType> | number
          }
        }
      }
      WildberriesSupply: {
        payload: Prisma.$WildberriesSupplyPayload<ExtArgs>
        fields: Prisma.WildberriesSupplyFieldRefs
        operations: {
          findUnique: {
            args: Prisma.WildberriesSupplyFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WildberriesSupplyPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.WildberriesSupplyFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WildberriesSupplyPayload>
          }
          findFirst: {
            args: Prisma.WildberriesSupplyFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WildberriesSupplyPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.WildberriesSupplyFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WildberriesSupplyPayload>
          }
          findMany: {
            args: Prisma.WildberriesSupplyFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WildberriesSupplyPayload>[]
          }
          create: {
            args: Prisma.WildberriesSupplyCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WildberriesSupplyPayload>
          }
          createMany: {
            args: Prisma.WildberriesSupplyCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.WildberriesSupplyCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WildberriesSupplyPayload>[]
          }
          delete: {
            args: Prisma.WildberriesSupplyDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WildberriesSupplyPayload>
          }
          update: {
            args: Prisma.WildberriesSupplyUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WildberriesSupplyPayload>
          }
          deleteMany: {
            args: Prisma.WildberriesSupplyDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.WildberriesSupplyUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.WildberriesSupplyUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WildberriesSupplyPayload>[]
          }
          upsert: {
            args: Prisma.WildberriesSupplyUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WildberriesSupplyPayload>
          }
          aggregate: {
            args: Prisma.WildberriesSupplyAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateWildberriesSupply>
          }
          groupBy: {
            args: Prisma.WildberriesSupplyGroupByArgs<ExtArgs>
            result: $Utils.Optional<WildberriesSupplyGroupByOutputType>[]
          }
          count: {
            args: Prisma.WildberriesSupplyCountArgs<ExtArgs>
            result: $Utils.Optional<WildberriesSupplyCountAggregateOutputType> | number
          }
        }
      }
      WildberriesSupplyCard: {
        payload: Prisma.$WildberriesSupplyCardPayload<ExtArgs>
        fields: Prisma.WildberriesSupplyCardFieldRefs
        operations: {
          findUnique: {
            args: Prisma.WildberriesSupplyCardFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WildberriesSupplyCardPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.WildberriesSupplyCardFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WildberriesSupplyCardPayload>
          }
          findFirst: {
            args: Prisma.WildberriesSupplyCardFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WildberriesSupplyCardPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.WildberriesSupplyCardFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WildberriesSupplyCardPayload>
          }
          findMany: {
            args: Prisma.WildberriesSupplyCardFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WildberriesSupplyCardPayload>[]
          }
          create: {
            args: Prisma.WildberriesSupplyCardCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WildberriesSupplyCardPayload>
          }
          createMany: {
            args: Prisma.WildberriesSupplyCardCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.WildberriesSupplyCardCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WildberriesSupplyCardPayload>[]
          }
          delete: {
            args: Prisma.WildberriesSupplyCardDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WildberriesSupplyCardPayload>
          }
          update: {
            args: Prisma.WildberriesSupplyCardUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WildberriesSupplyCardPayload>
          }
          deleteMany: {
            args: Prisma.WildberriesSupplyCardDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.WildberriesSupplyCardUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.WildberriesSupplyCardUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WildberriesSupplyCardPayload>[]
          }
          upsert: {
            args: Prisma.WildberriesSupplyCardUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WildberriesSupplyCardPayload>
          }
          aggregate: {
            args: Prisma.WildberriesSupplyCardAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateWildberriesSupplyCard>
          }
          groupBy: {
            args: Prisma.WildberriesSupplyCardGroupByArgs<ExtArgs>
            result: $Utils.Optional<WildberriesSupplyCardGroupByOutputType>[]
          }
          count: {
            args: Prisma.WildberriesSupplyCardCountArgs<ExtArgs>
            result: $Utils.Optional<WildberriesSupplyCardCountAggregateOutputType> | number
          }
        }
      }
      Logistics: {
        payload: Prisma.$LogisticsPayload<ExtArgs>
        fields: Prisma.LogisticsFieldRefs
        operations: {
          findUnique: {
            args: Prisma.LogisticsFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogisticsPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.LogisticsFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogisticsPayload>
          }
          findFirst: {
            args: Prisma.LogisticsFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogisticsPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.LogisticsFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogisticsPayload>
          }
          findMany: {
            args: Prisma.LogisticsFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogisticsPayload>[]
          }
          create: {
            args: Prisma.LogisticsCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogisticsPayload>
          }
          createMany: {
            args: Prisma.LogisticsCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.LogisticsCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogisticsPayload>[]
          }
          delete: {
            args: Prisma.LogisticsDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogisticsPayload>
          }
          update: {
            args: Prisma.LogisticsUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogisticsPayload>
          }
          deleteMany: {
            args: Prisma.LogisticsDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.LogisticsUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.LogisticsUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogisticsPayload>[]
          }
          upsert: {
            args: Prisma.LogisticsUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogisticsPayload>
          }
          aggregate: {
            args: Prisma.LogisticsAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateLogistics>
          }
          groupBy: {
            args: Prisma.LogisticsGroupByArgs<ExtArgs>
            result: $Utils.Optional<LogisticsGroupByOutputType>[]
          }
          count: {
            args: Prisma.LogisticsCountArgs<ExtArgs>
            result: $Utils.Optional<LogisticsCountAggregateOutputType> | number
          }
        }
      }
      SupplyOrder: {
        payload: Prisma.$SupplyOrderPayload<ExtArgs>
        fields: Prisma.SupplyOrderFieldRefs
        operations: {
          findUnique: {
            args: Prisma.SupplyOrderFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplyOrderPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.SupplyOrderFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplyOrderPayload>
          }
          findFirst: {
            args: Prisma.SupplyOrderFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplyOrderPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.SupplyOrderFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplyOrderPayload>
          }
          findMany: {
            args: Prisma.SupplyOrderFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplyOrderPayload>[]
          }
          create: {
            args: Prisma.SupplyOrderCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplyOrderPayload>
          }
          createMany: {
            args: Prisma.SupplyOrderCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.SupplyOrderCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplyOrderPayload>[]
          }
          delete: {
            args: Prisma.SupplyOrderDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplyOrderPayload>
          }
          update: {
            args: Prisma.SupplyOrderUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplyOrderPayload>
          }
          deleteMany: {
            args: Prisma.SupplyOrderDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.SupplyOrderUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.SupplyOrderUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplyOrderPayload>[]
          }
          upsert: {
            args: Prisma.SupplyOrderUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplyOrderPayload>
          }
          aggregate: {
            args: Prisma.SupplyOrderAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateSupplyOrder>
          }
          groupBy: {
            args: Prisma.SupplyOrderGroupByArgs<ExtArgs>
            result: $Utils.Optional<SupplyOrderGroupByOutputType>[]
          }
          count: {
            args: Prisma.SupplyOrderCountArgs<ExtArgs>
            result: $Utils.Optional<SupplyOrderCountAggregateOutputType> | number
          }
        }
      }
      SupplyOrderItem: {
        payload: Prisma.$SupplyOrderItemPayload<ExtArgs>
        fields: Prisma.SupplyOrderItemFieldRefs
        operations: {
          findUnique: {
            args: Prisma.SupplyOrderItemFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplyOrderItemPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.SupplyOrderItemFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplyOrderItemPayload>
          }
          findFirst: {
            args: Prisma.SupplyOrderItemFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplyOrderItemPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.SupplyOrderItemFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplyOrderItemPayload>
          }
          findMany: {
            args: Prisma.SupplyOrderItemFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplyOrderItemPayload>[]
          }
          create: {
            args: Prisma.SupplyOrderItemCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplyOrderItemPayload>
          }
          createMany: {
            args: Prisma.SupplyOrderItemCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.SupplyOrderItemCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplyOrderItemPayload>[]
          }
          delete: {
            args: Prisma.SupplyOrderItemDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplyOrderItemPayload>
          }
          update: {
            args: Prisma.SupplyOrderItemUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplyOrderItemPayload>
          }
          deleteMany: {
            args: Prisma.SupplyOrderItemDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.SupplyOrderItemUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.SupplyOrderItemUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplyOrderItemPayload>[]
          }
          upsert: {
            args: Prisma.SupplyOrderItemUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplyOrderItemPayload>
          }
          aggregate: {
            args: Prisma.SupplyOrderItemAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateSupplyOrderItem>
          }
          groupBy: {
            args: Prisma.SupplyOrderItemGroupByArgs<ExtArgs>
            result: $Utils.Optional<SupplyOrderItemGroupByOutputType>[]
          }
          count: {
            args: Prisma.SupplyOrderItemCountArgs<ExtArgs>
            result: $Utils.Optional<SupplyOrderItemCountAggregateOutputType> | number
          }
        }
      }
      SupplySupplier: {
        payload: Prisma.$SupplySupplierPayload<ExtArgs>
        fields: Prisma.SupplySupplierFieldRefs
        operations: {
          findUnique: {
            args: Prisma.SupplySupplierFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplySupplierPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.SupplySupplierFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplySupplierPayload>
          }
          findFirst: {
            args: Prisma.SupplySupplierFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplySupplierPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.SupplySupplierFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplySupplierPayload>
          }
          findMany: {
            args: Prisma.SupplySupplierFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplySupplierPayload>[]
          }
          create: {
            args: Prisma.SupplySupplierCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplySupplierPayload>
          }
          createMany: {
            args: Prisma.SupplySupplierCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.SupplySupplierCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplySupplierPayload>[]
          }
          delete: {
            args: Prisma.SupplySupplierDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplySupplierPayload>
          }
          update: {
            args: Prisma.SupplySupplierUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplySupplierPayload>
          }
          deleteMany: {
            args: Prisma.SupplySupplierDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.SupplySupplierUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.SupplySupplierUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplySupplierPayload>[]
          }
          upsert: {
            args: Prisma.SupplySupplierUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplySupplierPayload>
          }
          aggregate: {
            args: Prisma.SupplySupplierAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateSupplySupplier>
          }
          groupBy: {
            args: Prisma.SupplySupplierGroupByArgs<ExtArgs>
            result: $Utils.Optional<SupplySupplierGroupByOutputType>[]
          }
          count: {
            args: Prisma.SupplySupplierCountArgs<ExtArgs>
            result: $Utils.Optional<SupplySupplierCountAggregateOutputType> | number
          }
        }
      }
    }
  } & {
    other: {
      payload: any
      operations: {
        $executeRaw: {
          args: [query: TemplateStringsArray | Prisma.Sql, ...values: any[]],
          result: any
        }
        $executeRawUnsafe: {
          args: [query: string, ...values: any[]],
          result: any
        }
        $queryRaw: {
          args: [query: TemplateStringsArray | Prisma.Sql, ...values: any[]],
          result: any
        }
        $queryRawUnsafe: {
          args: [query: string, ...values: any[]],
          result: any
        }
      }
    }
  }
  export const defineExtension: $Extensions.ExtendsHook<"define", Prisma.TypeMapCb, $Extensions.DefaultArgs>
  export type DefaultPrismaClient = PrismaClient
  export type ErrorFormat = 'pretty' | 'colorless' | 'minimal'
  export interface PrismaClientOptions {
    /**
     * Overwrites the datasource url from your schema.prisma file
     */
    datasources?: Datasources
    /**
     * Overwrites the datasource url from your schema.prisma file
     */
    datasourceUrl?: string
    /**
     * @default "colorless"
     */
    errorFormat?: ErrorFormat
    /**
     * @example
     * ```
     * // Defaults to stdout
     * log: ['query', 'info', 'warn', 'error']
     * 
     * // Emit as events
     * log: [
     *   { emit: 'stdout', level: 'query' },
     *   { emit: 'stdout', level: 'info' },
     *   { emit: 'stdout', level: 'warn' }
     *   { emit: 'stdout', level: 'error' }
     * ]
     * ```
     * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/logging#the-log-option).
     */
    log?: (LogLevel | LogDefinition)[]
    /**
     * The default values for transactionOptions
     * maxWait ?= 2000
     * timeout ?= 5000
     */
    transactionOptions?: {
      maxWait?: number
      timeout?: number
      isolationLevel?: Prisma.TransactionIsolationLevel
    }
    /**
     * Global configuration for omitting model fields by default.
     * 
     * @example
     * ```
     * const prisma = new PrismaClient({
     *   omit: {
     *     user: {
     *       password: true
     *     }
     *   }
     * })
     * ```
     */
    omit?: Prisma.GlobalOmitConfig
  }
  export type GlobalOmitConfig = {
    user?: UserOmit
    admin?: AdminOmit
    smsCode?: SmsCodeOmit
    organization?: OrganizationOmit
    apiKey?: ApiKeyOmit
    counterpartyRequest?: CounterpartyRequestOmit
    counterparty?: CounterpartyOmit
    message?: MessageOmit
    service?: ServiceOmit
    supply?: SupplyOmit
    category?: CategoryOmit
    product?: ProductOmit
    cart?: CartOmit
    cartItem?: CartItemOmit
    favorites?: FavoritesOmit
    employee?: EmployeeOmit
    employeeSchedule?: EmployeeScheduleOmit
    wildberriesSupply?: WildberriesSupplyOmit
    wildberriesSupplyCard?: WildberriesSupplyCardOmit
    logistics?: LogisticsOmit
    supplyOrder?: SupplyOrderOmit
    supplyOrderItem?: SupplyOrderItemOmit
    supplySupplier?: SupplySupplierOmit
  }

  /* Types for Logging */
  export type LogLevel = 'info' | 'query' | 'warn' | 'error'
  export type LogDefinition = {
    level: LogLevel
    emit: 'stdout' | 'event'
  }

  export type GetLogType<T extends LogLevel | LogDefinition> = T extends LogDefinition ? T['emit'] extends 'event' ? T['level'] : never : never
  export type GetEvents<T extends any> = T extends Array<LogLevel | LogDefinition> ?
    GetLogType<T[0]> | GetLogType<T[1]> | GetLogType<T[2]> | GetLogType<T[3]>
    : never

  export type QueryEvent = {
    timestamp: Date
    query: string
    params: string
    duration: number
    target: string
  }

  export type LogEvent = {
    timestamp: Date
    message: string
    target: string
  }
  /* End Types for Logging */


  export type PrismaAction =
    | 'findUnique'
    | 'findUniqueOrThrow'
    | 'findMany'
    | 'findFirst'
    | 'findFirstOrThrow'
    | 'create'
    | 'createMany'
    | 'createManyAndReturn'
    | 'update'
    | 'updateMany'
    | 'updateManyAndReturn'
    | 'upsert'
    | 'delete'
    | 'deleteMany'
    | 'executeRaw'
    | 'queryRaw'
    | 'aggregate'
    | 'count'
    | 'runCommandRaw'
    | 'findRaw'
    | 'groupBy'

  /**
   * These options are being passed into the middleware as "params"
   */
  export type MiddlewareParams = {
    model?: ModelName
    action: PrismaAction
    args: any
    dataPath: string[]
    runInTransaction: boolean
  }

  /**
   * The `T` type makes sure, that the `return proceed` is not forgotten in the middleware implementation
   */
  export type Middleware<T = any> = (
    params: MiddlewareParams,
    next: (params: MiddlewareParams) => $Utils.JsPromise<T>,
  ) => $Utils.JsPromise<T>

  // tested in getLogLevel.test.ts
  export function getLogLevel(log: Array<LogLevel | LogDefinition>): LogLevel | undefined;

  /**
   * `PrismaClient` proxy available in interactive transactions.
   */
  export type TransactionClient = Omit<Prisma.DefaultPrismaClient, runtime.ITXClientDenyList>

  export type Datasource = {
    url?: string
  }

  /**
   * Count Types
   */


  /**
   * Count Type UserCountOutputType
   */

  export type UserCountOutputType = {
    sentMessages: number
    smsCodes: number
  }

  export type UserCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    sentMessages?: boolean | UserCountOutputTypeCountSentMessagesArgs
    smsCodes?: boolean | UserCountOutputTypeCountSmsCodesArgs
  }

  // Custom InputTypes
  /**
   * UserCountOutputType without action
   */
  export type UserCountOutputTypeDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserCountOutputType
     */
    select?: UserCountOutputTypeSelect<ExtArgs> | null
  }

  /**
   * UserCountOutputType without action
   */
  export type UserCountOutputTypeCountSentMessagesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: MessageWhereInput
  }

  /**
   * UserCountOutputType without action
   */
  export type UserCountOutputTypeCountSmsCodesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: SmsCodeWhereInput
  }


  /**
   * Count Type OrganizationCountOutputType
   */

  export type OrganizationCountOutputType = {
    apiKeys: number
    counterpartyOf: number
    organizationCounterparties: number
    receivedRequests: number
    sentRequests: number
    employees: number
    favorites: number
    receivedMessages: number
    sentMessages: number
    products: number
    services: number
    supplies: number
    users: number
    logistics: number
    supplyOrders: number
    partnerSupplyOrders: number
    fulfillmentSupplyOrders: number
    wildberriesSupplies: number
    supplySuppliers: number
  }

  export type OrganizationCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    apiKeys?: boolean | OrganizationCountOutputTypeCountApiKeysArgs
    counterpartyOf?: boolean | OrganizationCountOutputTypeCountCounterpartyOfArgs
    organizationCounterparties?: boolean | OrganizationCountOutputTypeCountOrganizationCounterpartiesArgs
    receivedRequests?: boolean | OrganizationCountOutputTypeCountReceivedRequestsArgs
    sentRequests?: boolean | OrganizationCountOutputTypeCountSentRequestsArgs
    employees?: boolean | OrganizationCountOutputTypeCountEmployeesArgs
    favorites?: boolean | OrganizationCountOutputTypeCountFavoritesArgs
    receivedMessages?: boolean | OrganizationCountOutputTypeCountReceivedMessagesArgs
    sentMessages?: boolean | OrganizationCountOutputTypeCountSentMessagesArgs
    products?: boolean | OrganizationCountOutputTypeCountProductsArgs
    services?: boolean | OrganizationCountOutputTypeCountServicesArgs
    supplies?: boolean | OrganizationCountOutputTypeCountSuppliesArgs
    users?: boolean | OrganizationCountOutputTypeCountUsersArgs
    logistics?: boolean | OrganizationCountOutputTypeCountLogisticsArgs
    supplyOrders?: boolean | OrganizationCountOutputTypeCountSupplyOrdersArgs
    partnerSupplyOrders?: boolean | OrganizationCountOutputTypeCountPartnerSupplyOrdersArgs
    fulfillmentSupplyOrders?: boolean | OrganizationCountOutputTypeCountFulfillmentSupplyOrdersArgs
    wildberriesSupplies?: boolean | OrganizationCountOutputTypeCountWildberriesSuppliesArgs
    supplySuppliers?: boolean | OrganizationCountOutputTypeCountSupplySuppliersArgs
  }

  // Custom InputTypes
  /**
   * OrganizationCountOutputType without action
   */
  export type OrganizationCountOutputTypeDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OrganizationCountOutputType
     */
    select?: OrganizationCountOutputTypeSelect<ExtArgs> | null
  }

  /**
   * OrganizationCountOutputType without action
   */
  export type OrganizationCountOutputTypeCountApiKeysArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ApiKeyWhereInput
  }

  /**
   * OrganizationCountOutputType without action
   */
  export type OrganizationCountOutputTypeCountCounterpartyOfArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: CounterpartyWhereInput
  }

  /**
   * OrganizationCountOutputType without action
   */
  export type OrganizationCountOutputTypeCountOrganizationCounterpartiesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: CounterpartyWhereInput
  }

  /**
   * OrganizationCountOutputType without action
   */
  export type OrganizationCountOutputTypeCountReceivedRequestsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: CounterpartyRequestWhereInput
  }

  /**
   * OrganizationCountOutputType without action
   */
  export type OrganizationCountOutputTypeCountSentRequestsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: CounterpartyRequestWhereInput
  }

  /**
   * OrganizationCountOutputType without action
   */
  export type OrganizationCountOutputTypeCountEmployeesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: EmployeeWhereInput
  }

  /**
   * OrganizationCountOutputType without action
   */
  export type OrganizationCountOutputTypeCountFavoritesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: FavoritesWhereInput
  }

  /**
   * OrganizationCountOutputType without action
   */
  export type OrganizationCountOutputTypeCountReceivedMessagesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: MessageWhereInput
  }

  /**
   * OrganizationCountOutputType without action
   */
  export type OrganizationCountOutputTypeCountSentMessagesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: MessageWhereInput
  }

  /**
   * OrganizationCountOutputType without action
   */
  export type OrganizationCountOutputTypeCountProductsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ProductWhereInput
  }

  /**
   * OrganizationCountOutputType without action
   */
  export type OrganizationCountOutputTypeCountServicesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ServiceWhereInput
  }

  /**
   * OrganizationCountOutputType without action
   */
  export type OrganizationCountOutputTypeCountSuppliesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: SupplyWhereInput
  }

  /**
   * OrganizationCountOutputType without action
   */
  export type OrganizationCountOutputTypeCountUsersArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: UserWhereInput
  }

  /**
   * OrganizationCountOutputType without action
   */
  export type OrganizationCountOutputTypeCountLogisticsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: LogisticsWhereInput
  }

  /**
   * OrganizationCountOutputType without action
   */
  export type OrganizationCountOutputTypeCountSupplyOrdersArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: SupplyOrderWhereInput
  }

  /**
   * OrganizationCountOutputType without action
   */
  export type OrganizationCountOutputTypeCountPartnerSupplyOrdersArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: SupplyOrderWhereInput
  }

  /**
   * OrganizationCountOutputType without action
   */
  export type OrganizationCountOutputTypeCountFulfillmentSupplyOrdersArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: SupplyOrderWhereInput
  }

  /**
   * OrganizationCountOutputType without action
   */
  export type OrganizationCountOutputTypeCountWildberriesSuppliesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: WildberriesSupplyWhereInput
  }

  /**
   * OrganizationCountOutputType without action
   */
  export type OrganizationCountOutputTypeCountSupplySuppliersArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: SupplySupplierWhereInput
  }


  /**
   * Count Type CategoryCountOutputType
   */

  export type CategoryCountOutputType = {
    products: number
  }

  export type CategoryCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    products?: boolean | CategoryCountOutputTypeCountProductsArgs
  }

  // Custom InputTypes
  /**
   * CategoryCountOutputType without action
   */
  export type CategoryCountOutputTypeDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CategoryCountOutputType
     */
    select?: CategoryCountOutputTypeSelect<ExtArgs> | null
  }

  /**
   * CategoryCountOutputType without action
   */
  export type CategoryCountOutputTypeCountProductsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ProductWhereInput
  }


  /**
   * Count Type ProductCountOutputType
   */

  export type ProductCountOutputType = {
    cartItems: number
    favorites: number
    supplyOrderItems: number
  }

  export type ProductCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    cartItems?: boolean | ProductCountOutputTypeCountCartItemsArgs
    favorites?: boolean | ProductCountOutputTypeCountFavoritesArgs
    supplyOrderItems?: boolean | ProductCountOutputTypeCountSupplyOrderItemsArgs
  }

  // Custom InputTypes
  /**
   * ProductCountOutputType without action
   */
  export type ProductCountOutputTypeDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ProductCountOutputType
     */
    select?: ProductCountOutputTypeSelect<ExtArgs> | null
  }

  /**
   * ProductCountOutputType without action
   */
  export type ProductCountOutputTypeCountCartItemsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: CartItemWhereInput
  }

  /**
   * ProductCountOutputType without action
   */
  export type ProductCountOutputTypeCountFavoritesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: FavoritesWhereInput
  }

  /**
   * ProductCountOutputType without action
   */
  export type ProductCountOutputTypeCountSupplyOrderItemsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: SupplyOrderItemWhereInput
  }


  /**
   * Count Type CartCountOutputType
   */

  export type CartCountOutputType = {
    items: number
  }

  export type CartCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    items?: boolean | CartCountOutputTypeCountItemsArgs
  }

  // Custom InputTypes
  /**
   * CartCountOutputType without action
   */
  export type CartCountOutputTypeDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CartCountOutputType
     */
    select?: CartCountOutputTypeSelect<ExtArgs> | null
  }

  /**
   * CartCountOutputType without action
   */
  export type CartCountOutputTypeCountItemsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: CartItemWhereInput
  }


  /**
   * Count Type EmployeeCountOutputType
   */

  export type EmployeeCountOutputType = {
    scheduleRecords: number
  }

  export type EmployeeCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    scheduleRecords?: boolean | EmployeeCountOutputTypeCountScheduleRecordsArgs
  }

  // Custom InputTypes
  /**
   * EmployeeCountOutputType without action
   */
  export type EmployeeCountOutputTypeDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EmployeeCountOutputType
     */
    select?: EmployeeCountOutputTypeSelect<ExtArgs> | null
  }

  /**
   * EmployeeCountOutputType without action
   */
  export type EmployeeCountOutputTypeCountScheduleRecordsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: EmployeeScheduleWhereInput
  }


  /**
   * Count Type WildberriesSupplyCountOutputType
   */

  export type WildberriesSupplyCountOutputType = {
    cards: number
  }

  export type WildberriesSupplyCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    cards?: boolean | WildberriesSupplyCountOutputTypeCountCardsArgs
  }

  // Custom InputTypes
  /**
   * WildberriesSupplyCountOutputType without action
   */
  export type WildberriesSupplyCountOutputTypeDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WildberriesSupplyCountOutputType
     */
    select?: WildberriesSupplyCountOutputTypeSelect<ExtArgs> | null
  }

  /**
   * WildberriesSupplyCountOutputType without action
   */
  export type WildberriesSupplyCountOutputTypeCountCardsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: WildberriesSupplyCardWhereInput
  }


  /**
   * Count Type SupplyOrderCountOutputType
   */

  export type SupplyOrderCountOutputType = {
    items: number
  }

  export type SupplyOrderCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    items?: boolean | SupplyOrderCountOutputTypeCountItemsArgs
  }

  // Custom InputTypes
  /**
   * SupplyOrderCountOutputType without action
   */
  export type SupplyOrderCountOutputTypeDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplyOrderCountOutputType
     */
    select?: SupplyOrderCountOutputTypeSelect<ExtArgs> | null
  }

  /**
   * SupplyOrderCountOutputType without action
   */
  export type SupplyOrderCountOutputTypeCountItemsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: SupplyOrderItemWhereInput
  }


  /**
   * Models
   */

  /**
   * Model User
   */

  export type AggregateUser = {
    _count: UserCountAggregateOutputType | null
    _min: UserMinAggregateOutputType | null
    _max: UserMaxAggregateOutputType | null
  }

  export type UserMinAggregateOutputType = {
    id: string | null
    phone: string | null
    avatar: string | null
    managerName: string | null
    createdAt: Date | null
    updatedAt: Date | null
    organizationId: string | null
  }

  export type UserMaxAggregateOutputType = {
    id: string | null
    phone: string | null
    avatar: string | null
    managerName: string | null
    createdAt: Date | null
    updatedAt: Date | null
    organizationId: string | null
  }

  export type UserCountAggregateOutputType = {
    id: number
    phone: number
    avatar: number
    managerName: number
    createdAt: number
    updatedAt: number
    organizationId: number
    _all: number
  }


  export type UserMinAggregateInputType = {
    id?: true
    phone?: true
    avatar?: true
    managerName?: true
    createdAt?: true
    updatedAt?: true
    organizationId?: true
  }

  export type UserMaxAggregateInputType = {
    id?: true
    phone?: true
    avatar?: true
    managerName?: true
    createdAt?: true
    updatedAt?: true
    organizationId?: true
  }

  export type UserCountAggregateInputType = {
    id?: true
    phone?: true
    avatar?: true
    managerName?: true
    createdAt?: true
    updatedAt?: true
    organizationId?: true
    _all?: true
  }

  export type UserAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which User to aggregate.
     */
    where?: UserWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Users to fetch.
     */
    orderBy?: UserOrderByWithRelationInput | UserOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: UserWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Users 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` Users.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned Users
    **/
    _count?: true | UserCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: UserMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: UserMaxAggregateInputType
  }

  export type GetUserAggregateType<T extends UserAggregateArgs> = {
        [P in keyof T & keyof AggregateUser]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateUser[P]>
      : GetScalarType<T[P], AggregateUser[P]>
  }




  export type UserGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: UserWhereInput
    orderBy?: UserOrderByWithAggregationInput | UserOrderByWithAggregationInput[]
    by: UserScalarFieldEnum[] | UserScalarFieldEnum
    having?: UserScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: UserCountAggregateInputType | true
    _min?: UserMinAggregateInputType
    _max?: UserMaxAggregateInputType
  }

  export type UserGroupByOutputType = {
    id: string
    phone: string
    avatar: string | null
    managerName: string | null
    createdAt: Date
    updatedAt: Date
    organizationId: string | null
    _count: UserCountAggregateOutputType | null
    _min: UserMinAggregateOutputType | null
    _max: UserMaxAggregateOutputType | null
  }

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


  export type UserSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    phone?: boolean
    avatar?: boolean
    managerName?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    organizationId?: boolean
    sentMessages?: boolean | User$sentMessagesArgs<ExtArgs>
    smsCodes?: boolean | User$smsCodesArgs<ExtArgs>
    organization?: boolean | User$organizationArgs<ExtArgs>
    _count?: boolean | UserCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["user"]>

  export type UserSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    phone?: boolean
    avatar?: boolean
    managerName?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    organizationId?: boolean
    organization?: boolean | User$organizationArgs<ExtArgs>
  }, ExtArgs["result"]["user"]>

  export type UserSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    phone?: boolean
    avatar?: boolean
    managerName?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    organizationId?: boolean
    organization?: boolean | User$organizationArgs<ExtArgs>
  }, ExtArgs["result"]["user"]>

  export type UserSelectScalar = {
    id?: boolean
    phone?: boolean
    avatar?: boolean
    managerName?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    organizationId?: boolean
  }

  export type UserOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "phone" | "avatar" | "managerName" | "createdAt" | "updatedAt" | "organizationId", ExtArgs["result"]["user"]>
  export type UserInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    sentMessages?: boolean | User$sentMessagesArgs<ExtArgs>
    smsCodes?: boolean | User$smsCodesArgs<ExtArgs>
    organization?: boolean | User$organizationArgs<ExtArgs>
    _count?: boolean | UserCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type UserIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | User$organizationArgs<ExtArgs>
  }
  export type UserIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | User$organizationArgs<ExtArgs>
  }

  export type $UserPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "User"
    objects: {
      sentMessages: Prisma.$MessagePayload<ExtArgs>[]
      smsCodes: Prisma.$SmsCodePayload<ExtArgs>[]
      organization: Prisma.$OrganizationPayload<ExtArgs> | null
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      phone: string
      avatar: string | null
      managerName: string | null
      createdAt: Date
      updatedAt: Date
      organizationId: string | null
    }, ExtArgs["result"]["user"]>
    composites: {}
  }

  type UserGetPayload<S extends boolean | null | undefined | UserDefaultArgs> = $Result.GetResult<Prisma.$UserPayload, S>

  type UserCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<UserFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: UserCountAggregateInputType | true
    }

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

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

    /**
     * Find the first User 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 {UserFindFirstArgs} args - Arguments to find a User
     * @example
     * // Get one User
     * const user = await prisma.user.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends UserFindFirstArgs>(args?: SelectSubset<T, UserFindFirstArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first User 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 {UserFindFirstOrThrowArgs} args - Arguments to find a User
     * @example
     * // Get one User
     * const user = await prisma.user.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends UserFindFirstOrThrowArgs>(args?: SelectSubset<T, UserFindFirstOrThrowArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more Users 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 {UserFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all Users
     * const users = await prisma.user.findMany()
     * 
     * // Get first 10 Users
     * const users = await prisma.user.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const userWithIdOnly = await prisma.user.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends UserFindManyArgs>(args?: SelectSubset<T, UserFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a User.
     * @param {UserCreateArgs} args - Arguments to create a User.
     * @example
     * // Create one User
     * const User = await prisma.user.create({
     *   data: {
     *     // ... data to create a User
     *   }
     * })
     * 
     */
    create<T extends UserCreateArgs>(args: SelectSubset<T, UserCreateArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

    /**
     * Create many Users and returns the data saved in the database.
     * @param {UserCreateManyAndReturnArgs} args - Arguments to create many Users.
     * @example
     * // Create many Users
     * const user = await prisma.user.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many Users and only return the `id`
     * const userWithIdOnly = await prisma.user.createManyAndReturn({
     *   select: { id: true },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    createManyAndReturn<T extends UserCreateManyAndReturnArgs>(args?: SelectSubset<T, UserCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a User.
     * @param {UserDeleteArgs} args - Arguments to delete one User.
     * @example
     * // Delete one User
     * const User = await prisma.user.delete({
     *   where: {
     *     // ... filter to delete one User
     *   }
     * })
     * 
     */
    delete<T extends UserDeleteArgs>(args: SelectSubset<T, UserDeleteArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one User.
     * @param {UserUpdateArgs} args - Arguments to update one User.
     * @example
     * // Update one User
     * const user = await prisma.user.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends UserUpdateArgs>(args: SelectSubset<T, UserUpdateArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

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

    /**
     * Update zero or more Users and returns the data updated in the database.
     * @param {UserUpdateManyAndReturnArgs} args - Arguments to update many Users.
     * @example
     * // Update many Users
     * const user = await prisma.user.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more Users and only return the `id`
     * const userWithIdOnly = await prisma.user.updateManyAndReturn({
     *   select: { id: true },
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    updateManyAndReturn<T extends UserUpdateManyAndReturnArgs>(args: SelectSubset<T, UserUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

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


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

    /**
     * Allows you to perform aggregations operations on a User.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {UserAggregateArgs} 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 UserAggregateArgs>(args: Subset<T, UserAggregateArgs>): Prisma.PrismaPromise<GetUserAggregateType<T>>

    /**
     * Group by User.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {UserGroupByArgs} 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 UserGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: UserGroupByArgs['orderBy'] }
        : { orderBy?: UserGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends 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 Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends 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 Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends 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 True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, UserGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetUserGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the User model
   */
  readonly fields: UserFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for User.
   * 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__UserClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    sentMessages<T extends User$sentMessagesArgs<ExtArgs> = {}>(args?: Subset<T, User$sentMessagesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MessagePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    smsCodes<T extends User$smsCodesArgs<ExtArgs> = {}>(args?: Subset<T, User$smsCodesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SmsCodePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    organization<T extends User$organizationArgs<ExtArgs> = {}>(args?: Subset<T, User$organizationArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    /**
     * 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): $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): $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): $Utils.JsPromise<T>
  }




  /**
   * Fields of the User model
   */
  interface UserFieldRefs {
    readonly id: FieldRef<"User", 'String'>
    readonly phone: FieldRef<"User", 'String'>
    readonly avatar: FieldRef<"User", 'String'>
    readonly managerName: FieldRef<"User", 'String'>
    readonly createdAt: FieldRef<"User", 'DateTime'>
    readonly updatedAt: FieldRef<"User", 'DateTime'>
    readonly organizationId: FieldRef<"User", 'String'>
  }
    

  // Custom InputTypes
  /**
   * User findUnique
   */
  export type UserFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the User
     */
    select?: UserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the User
     */
    omit?: UserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserInclude<ExtArgs> | null
    /**
     * Filter, which User to fetch.
     */
    where: UserWhereUniqueInput
  }

  /**
   * User findUniqueOrThrow
   */
  export type UserFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the User
     */
    select?: UserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the User
     */
    omit?: UserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserInclude<ExtArgs> | null
    /**
     * Filter, which User to fetch.
     */
    where: UserWhereUniqueInput
  }

  /**
   * User findFirst
   */
  export type UserFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the User
     */
    select?: UserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the User
     */
    omit?: UserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserInclude<ExtArgs> | null
    /**
     * Filter, which User to fetch.
     */
    where?: UserWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Users to fetch.
     */
    orderBy?: UserOrderByWithRelationInput | UserOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Users.
     */
    cursor?: UserWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Users 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` Users.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Users.
     */
    distinct?: UserScalarFieldEnum | UserScalarFieldEnum[]
  }

  /**
   * User findFirstOrThrow
   */
  export type UserFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the User
     */
    select?: UserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the User
     */
    omit?: UserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserInclude<ExtArgs> | null
    /**
     * Filter, which User to fetch.
     */
    where?: UserWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Users to fetch.
     */
    orderBy?: UserOrderByWithRelationInput | UserOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Users.
     */
    cursor?: UserWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Users 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` Users.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Users.
     */
    distinct?: UserScalarFieldEnum | UserScalarFieldEnum[]
  }

  /**
   * User findMany
   */
  export type UserFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the User
     */
    select?: UserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the User
     */
    omit?: UserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserInclude<ExtArgs> | null
    /**
     * Filter, which Users to fetch.
     */
    where?: UserWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Users to fetch.
     */
    orderBy?: UserOrderByWithRelationInput | UserOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing Users.
     */
    cursor?: UserWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Users 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` Users.
     */
    skip?: number
    distinct?: UserScalarFieldEnum | UserScalarFieldEnum[]
  }

  /**
   * User create
   */
  export type UserCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the User
     */
    select?: UserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the User
     */
    omit?: UserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserInclude<ExtArgs> | null
    /**
     * The data needed to create a User.
     */
    data: XOR<UserCreateInput, UserUncheckedCreateInput>
  }

  /**
   * User createMany
   */
  export type UserCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many Users.
     */
    data: UserCreateManyInput | UserCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * User createManyAndReturn
   */
  export type UserCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the User
     */
    select?: UserSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the User
     */
    omit?: UserOmit<ExtArgs> | null
    /**
     * The data used to create many Users.
     */
    data: UserCreateManyInput | UserCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * User update
   */
  export type UserUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the User
     */
    select?: UserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the User
     */
    omit?: UserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserInclude<ExtArgs> | null
    /**
     * The data needed to update a User.
     */
    data: XOR<UserUpdateInput, UserUncheckedUpdateInput>
    /**
     * Choose, which User to update.
     */
    where: UserWhereUniqueInput
  }

  /**
   * User updateMany
   */
  export type UserUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update Users.
     */
    data: XOR<UserUpdateManyMutationInput, UserUncheckedUpdateManyInput>
    /**
     * Filter which Users to update
     */
    where?: UserWhereInput
    /**
     * Limit how many Users to update.
     */
    limit?: number
  }

  /**
   * User updateManyAndReturn
   */
  export type UserUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the User
     */
    select?: UserSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the User
     */
    omit?: UserOmit<ExtArgs> | null
    /**
     * The data used to update Users.
     */
    data: XOR<UserUpdateManyMutationInput, UserUncheckedUpdateManyInput>
    /**
     * Filter which Users to update
     */
    where?: UserWhereInput
    /**
     * Limit how many Users to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * User upsert
   */
  export type UserUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the User
     */
    select?: UserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the User
     */
    omit?: UserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserInclude<ExtArgs> | null
    /**
     * The filter to search for the User to update in case it exists.
     */
    where: UserWhereUniqueInput
    /**
     * In case the User found by the `where` argument doesn't exist, create a new User with this data.
     */
    create: XOR<UserCreateInput, UserUncheckedCreateInput>
    /**
     * In case the User was found with the provided `where` argument, update it with this data.
     */
    update: XOR<UserUpdateInput, UserUncheckedUpdateInput>
  }

  /**
   * User delete
   */
  export type UserDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the User
     */
    select?: UserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the User
     */
    omit?: UserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserInclude<ExtArgs> | null
    /**
     * Filter which User to delete.
     */
    where: UserWhereUniqueInput
  }

  /**
   * User deleteMany
   */
  export type UserDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Users to delete
     */
    where?: UserWhereInput
    /**
     * Limit how many Users to delete.
     */
    limit?: number
  }

  /**
   * User.sentMessages
   */
  export type User$sentMessagesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Message
     */
    select?: MessageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Message
     */
    omit?: MessageOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MessageInclude<ExtArgs> | null
    where?: MessageWhereInput
    orderBy?: MessageOrderByWithRelationInput | MessageOrderByWithRelationInput[]
    cursor?: MessageWhereUniqueInput
    take?: number
    skip?: number
    distinct?: MessageScalarFieldEnum | MessageScalarFieldEnum[]
  }

  /**
   * User.smsCodes
   */
  export type User$smsCodesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SmsCode
     */
    select?: SmsCodeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SmsCode
     */
    omit?: SmsCodeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SmsCodeInclude<ExtArgs> | null
    where?: SmsCodeWhereInput
    orderBy?: SmsCodeOrderByWithRelationInput | SmsCodeOrderByWithRelationInput[]
    cursor?: SmsCodeWhereUniqueInput
    take?: number
    skip?: number
    distinct?: SmsCodeScalarFieldEnum | SmsCodeScalarFieldEnum[]
  }

  /**
   * User.organization
   */
  export type User$organizationArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Organization
     */
    select?: OrganizationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Organization
     */
    omit?: OrganizationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OrganizationInclude<ExtArgs> | null
    where?: OrganizationWhereInput
  }

  /**
   * User without action
   */
  export type UserDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the User
     */
    select?: UserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the User
     */
    omit?: UserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserInclude<ExtArgs> | null
  }


  /**
   * Model Admin
   */

  export type AggregateAdmin = {
    _count: AdminCountAggregateOutputType | null
    _min: AdminMinAggregateOutputType | null
    _max: AdminMaxAggregateOutputType | null
  }

  export type AdminMinAggregateOutputType = {
    id: string | null
    username: string | null
    password: string | null
    email: string | null
    isActive: boolean | null
    lastLogin: Date | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type AdminMaxAggregateOutputType = {
    id: string | null
    username: string | null
    password: string | null
    email: string | null
    isActive: boolean | null
    lastLogin: Date | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type AdminCountAggregateOutputType = {
    id: number
    username: number
    password: number
    email: number
    isActive: number
    lastLogin: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type AdminMinAggregateInputType = {
    id?: true
    username?: true
    password?: true
    email?: true
    isActive?: true
    lastLogin?: true
    createdAt?: true
    updatedAt?: true
  }

  export type AdminMaxAggregateInputType = {
    id?: true
    username?: true
    password?: true
    email?: true
    isActive?: true
    lastLogin?: true
    createdAt?: true
    updatedAt?: true
  }

  export type AdminCountAggregateInputType = {
    id?: true
    username?: true
    password?: true
    email?: true
    isActive?: true
    lastLogin?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type AdminAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Admin to aggregate.
     */
    where?: AdminWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Admins to fetch.
     */
    orderBy?: AdminOrderByWithRelationInput | AdminOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: AdminWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Admins 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` Admins.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned Admins
    **/
    _count?: true | AdminCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: AdminMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: AdminMaxAggregateInputType
  }

  export type GetAdminAggregateType<T extends AdminAggregateArgs> = {
        [P in keyof T & keyof AggregateAdmin]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateAdmin[P]>
      : GetScalarType<T[P], AggregateAdmin[P]>
  }




  export type AdminGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AdminWhereInput
    orderBy?: AdminOrderByWithAggregationInput | AdminOrderByWithAggregationInput[]
    by: AdminScalarFieldEnum[] | AdminScalarFieldEnum
    having?: AdminScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: AdminCountAggregateInputType | true
    _min?: AdminMinAggregateInputType
    _max?: AdminMaxAggregateInputType
  }

  export type AdminGroupByOutputType = {
    id: string
    username: string
    password: string
    email: string | null
    isActive: boolean
    lastLogin: Date | null
    createdAt: Date
    updatedAt: Date
    _count: AdminCountAggregateOutputType | null
    _min: AdminMinAggregateOutputType | null
    _max: AdminMaxAggregateOutputType | null
  }

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


  export type AdminSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    username?: boolean
    password?: boolean
    email?: boolean
    isActive?: boolean
    lastLogin?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["admin"]>

  export type AdminSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    username?: boolean
    password?: boolean
    email?: boolean
    isActive?: boolean
    lastLogin?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["admin"]>

  export type AdminSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    username?: boolean
    password?: boolean
    email?: boolean
    isActive?: boolean
    lastLogin?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["admin"]>

  export type AdminSelectScalar = {
    id?: boolean
    username?: boolean
    password?: boolean
    email?: boolean
    isActive?: boolean
    lastLogin?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type AdminOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "username" | "password" | "email" | "isActive" | "lastLogin" | "createdAt" | "updatedAt", ExtArgs["result"]["admin"]>

  export type $AdminPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "Admin"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      username: string
      password: string
      email: string | null
      isActive: boolean
      lastLogin: Date | null
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["admin"]>
    composites: {}
  }

  type AdminGetPayload<S extends boolean | null | undefined | AdminDefaultArgs> = $Result.GetResult<Prisma.$AdminPayload, S>

  type AdminCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<AdminFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: AdminCountAggregateInputType | true
    }

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

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

    /**
     * Find the first Admin 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 {AdminFindFirstArgs} args - Arguments to find a Admin
     * @example
     * // Get one Admin
     * const admin = await prisma.admin.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends AdminFindFirstArgs>(args?: SelectSubset<T, AdminFindFirstArgs<ExtArgs>>): Prisma__AdminClient<$Result.GetResult<Prisma.$AdminPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Admin 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 {AdminFindFirstOrThrowArgs} args - Arguments to find a Admin
     * @example
     * // Get one Admin
     * const admin = await prisma.admin.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends AdminFindFirstOrThrowArgs>(args?: SelectSubset<T, AdminFindFirstOrThrowArgs<ExtArgs>>): Prisma__AdminClient<$Result.GetResult<Prisma.$AdminPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more Admins 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 {AdminFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all Admins
     * const admins = await prisma.admin.findMany()
     * 
     * // Get first 10 Admins
     * const admins = await prisma.admin.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const adminWithIdOnly = await prisma.admin.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends AdminFindManyArgs>(args?: SelectSubset<T, AdminFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AdminPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a Admin.
     * @param {AdminCreateArgs} args - Arguments to create a Admin.
     * @example
     * // Create one Admin
     * const Admin = await prisma.admin.create({
     *   data: {
     *     // ... data to create a Admin
     *   }
     * })
     * 
     */
    create<T extends AdminCreateArgs>(args: SelectSubset<T, AdminCreateArgs<ExtArgs>>): Prisma__AdminClient<$Result.GetResult<Prisma.$AdminPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

    /**
     * Create many Admins and returns the data saved in the database.
     * @param {AdminCreateManyAndReturnArgs} args - Arguments to create many Admins.
     * @example
     * // Create many Admins
     * const admin = await prisma.admin.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many Admins and only return the `id`
     * const adminWithIdOnly = await prisma.admin.createManyAndReturn({
     *   select: { id: true },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    createManyAndReturn<T extends AdminCreateManyAndReturnArgs>(args?: SelectSubset<T, AdminCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AdminPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a Admin.
     * @param {AdminDeleteArgs} args - Arguments to delete one Admin.
     * @example
     * // Delete one Admin
     * const Admin = await prisma.admin.delete({
     *   where: {
     *     // ... filter to delete one Admin
     *   }
     * })
     * 
     */
    delete<T extends AdminDeleteArgs>(args: SelectSubset<T, AdminDeleteArgs<ExtArgs>>): Prisma__AdminClient<$Result.GetResult<Prisma.$AdminPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one Admin.
     * @param {AdminUpdateArgs} args - Arguments to update one Admin.
     * @example
     * // Update one Admin
     * const admin = await prisma.admin.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends AdminUpdateArgs>(args: SelectSubset<T, AdminUpdateArgs<ExtArgs>>): Prisma__AdminClient<$Result.GetResult<Prisma.$AdminPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

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

    /**
     * Update zero or more Admins and returns the data updated in the database.
     * @param {AdminUpdateManyAndReturnArgs} args - Arguments to update many Admins.
     * @example
     * // Update many Admins
     * const admin = await prisma.admin.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more Admins and only return the `id`
     * const adminWithIdOnly = await prisma.admin.updateManyAndReturn({
     *   select: { id: true },
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    updateManyAndReturn<T extends AdminUpdateManyAndReturnArgs>(args: SelectSubset<T, AdminUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AdminPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

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


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

    /**
     * Allows you to perform aggregations operations on a Admin.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AdminAggregateArgs} 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 AdminAggregateArgs>(args: Subset<T, AdminAggregateArgs>): Prisma.PrismaPromise<GetAdminAggregateType<T>>

    /**
     * Group by Admin.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AdminGroupByArgs} 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 AdminGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: AdminGroupByArgs['orderBy'] }
        : { orderBy?: AdminGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends 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 Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends 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 Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends 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 True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, AdminGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetAdminGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the Admin model
   */
  readonly fields: AdminFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for Admin.
   * 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__AdminClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $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): $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): $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): $Utils.JsPromise<T>
  }




  /**
   * Fields of the Admin model
   */
  interface AdminFieldRefs {
    readonly id: FieldRef<"Admin", 'String'>
    readonly username: FieldRef<"Admin", 'String'>
    readonly password: FieldRef<"Admin", 'String'>
    readonly email: FieldRef<"Admin", 'String'>
    readonly isActive: FieldRef<"Admin", 'Boolean'>
    readonly lastLogin: FieldRef<"Admin", 'DateTime'>
    readonly createdAt: FieldRef<"Admin", 'DateTime'>
    readonly updatedAt: FieldRef<"Admin", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * Admin findUnique
   */
  export type AdminFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Admin
     */
    select?: AdminSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Admin
     */
    omit?: AdminOmit<ExtArgs> | null
    /**
     * Filter, which Admin to fetch.
     */
    where: AdminWhereUniqueInput
  }

  /**
   * Admin findUniqueOrThrow
   */
  export type AdminFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Admin
     */
    select?: AdminSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Admin
     */
    omit?: AdminOmit<ExtArgs> | null
    /**
     * Filter, which Admin to fetch.
     */
    where: AdminWhereUniqueInput
  }

  /**
   * Admin findFirst
   */
  export type AdminFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Admin
     */
    select?: AdminSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Admin
     */
    omit?: AdminOmit<ExtArgs> | null
    /**
     * Filter, which Admin to fetch.
     */
    where?: AdminWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Admins to fetch.
     */
    orderBy?: AdminOrderByWithRelationInput | AdminOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Admins.
     */
    cursor?: AdminWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Admins 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` Admins.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Admins.
     */
    distinct?: AdminScalarFieldEnum | AdminScalarFieldEnum[]
  }

  /**
   * Admin findFirstOrThrow
   */
  export type AdminFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Admin
     */
    select?: AdminSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Admin
     */
    omit?: AdminOmit<ExtArgs> | null
    /**
     * Filter, which Admin to fetch.
     */
    where?: AdminWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Admins to fetch.
     */
    orderBy?: AdminOrderByWithRelationInput | AdminOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Admins.
     */
    cursor?: AdminWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Admins 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` Admins.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Admins.
     */
    distinct?: AdminScalarFieldEnum | AdminScalarFieldEnum[]
  }

  /**
   * Admin findMany
   */
  export type AdminFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Admin
     */
    select?: AdminSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Admin
     */
    omit?: AdminOmit<ExtArgs> | null
    /**
     * Filter, which Admins to fetch.
     */
    where?: AdminWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Admins to fetch.
     */
    orderBy?: AdminOrderByWithRelationInput | AdminOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing Admins.
     */
    cursor?: AdminWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Admins 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` Admins.
     */
    skip?: number
    distinct?: AdminScalarFieldEnum | AdminScalarFieldEnum[]
  }

  /**
   * Admin create
   */
  export type AdminCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Admin
     */
    select?: AdminSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Admin
     */
    omit?: AdminOmit<ExtArgs> | null
    /**
     * The data needed to create a Admin.
     */
    data: XOR<AdminCreateInput, AdminUncheckedCreateInput>
  }

  /**
   * Admin createMany
   */
  export type AdminCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many Admins.
     */
    data: AdminCreateManyInput | AdminCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Admin createManyAndReturn
   */
  export type AdminCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Admin
     */
    select?: AdminSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Admin
     */
    omit?: AdminOmit<ExtArgs> | null
    /**
     * The data used to create many Admins.
     */
    data: AdminCreateManyInput | AdminCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Admin update
   */
  export type AdminUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Admin
     */
    select?: AdminSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Admin
     */
    omit?: AdminOmit<ExtArgs> | null
    /**
     * The data needed to update a Admin.
     */
    data: XOR<AdminUpdateInput, AdminUncheckedUpdateInput>
    /**
     * Choose, which Admin to update.
     */
    where: AdminWhereUniqueInput
  }

  /**
   * Admin updateMany
   */
  export type AdminUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update Admins.
     */
    data: XOR<AdminUpdateManyMutationInput, AdminUncheckedUpdateManyInput>
    /**
     * Filter which Admins to update
     */
    where?: AdminWhereInput
    /**
     * Limit how many Admins to update.
     */
    limit?: number
  }

  /**
   * Admin updateManyAndReturn
   */
  export type AdminUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Admin
     */
    select?: AdminSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Admin
     */
    omit?: AdminOmit<ExtArgs> | null
    /**
     * The data used to update Admins.
     */
    data: XOR<AdminUpdateManyMutationInput, AdminUncheckedUpdateManyInput>
    /**
     * Filter which Admins to update
     */
    where?: AdminWhereInput
    /**
     * Limit how many Admins to update.
     */
    limit?: number
  }

  /**
   * Admin upsert
   */
  export type AdminUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Admin
     */
    select?: AdminSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Admin
     */
    omit?: AdminOmit<ExtArgs> | null
    /**
     * The filter to search for the Admin to update in case it exists.
     */
    where: AdminWhereUniqueInput
    /**
     * In case the Admin found by the `where` argument doesn't exist, create a new Admin with this data.
     */
    create: XOR<AdminCreateInput, AdminUncheckedCreateInput>
    /**
     * In case the Admin was found with the provided `where` argument, update it with this data.
     */
    update: XOR<AdminUpdateInput, AdminUncheckedUpdateInput>
  }

  /**
   * Admin delete
   */
  export type AdminDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Admin
     */
    select?: AdminSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Admin
     */
    omit?: AdminOmit<ExtArgs> | null
    /**
     * Filter which Admin to delete.
     */
    where: AdminWhereUniqueInput
  }

  /**
   * Admin deleteMany
   */
  export type AdminDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Admins to delete
     */
    where?: AdminWhereInput
    /**
     * Limit how many Admins to delete.
     */
    limit?: number
  }

  /**
   * Admin without action
   */
  export type AdminDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Admin
     */
    select?: AdminSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Admin
     */
    omit?: AdminOmit<ExtArgs> | null
  }


  /**
   * Model SmsCode
   */

  export type AggregateSmsCode = {
    _count: SmsCodeCountAggregateOutputType | null
    _avg: SmsCodeAvgAggregateOutputType | null
    _sum: SmsCodeSumAggregateOutputType | null
    _min: SmsCodeMinAggregateOutputType | null
    _max: SmsCodeMaxAggregateOutputType | null
  }

  export type SmsCodeAvgAggregateOutputType = {
    attempts: number | null
    maxAttempts: number | null
  }

  export type SmsCodeSumAggregateOutputType = {
    attempts: number | null
    maxAttempts: number | null
  }

  export type SmsCodeMinAggregateOutputType = {
    id: string | null
    code: string | null
    phone: string | null
    expiresAt: Date | null
    isUsed: boolean | null
    attempts: number | null
    maxAttempts: number | null
    createdAt: Date | null
    userId: string | null
  }

  export type SmsCodeMaxAggregateOutputType = {
    id: string | null
    code: string | null
    phone: string | null
    expiresAt: Date | null
    isUsed: boolean | null
    attempts: number | null
    maxAttempts: number | null
    createdAt: Date | null
    userId: string | null
  }

  export type SmsCodeCountAggregateOutputType = {
    id: number
    code: number
    phone: number
    expiresAt: number
    isUsed: number
    attempts: number
    maxAttempts: number
    createdAt: number
    userId: number
    _all: number
  }


  export type SmsCodeAvgAggregateInputType = {
    attempts?: true
    maxAttempts?: true
  }

  export type SmsCodeSumAggregateInputType = {
    attempts?: true
    maxAttempts?: true
  }

  export type SmsCodeMinAggregateInputType = {
    id?: true
    code?: true
    phone?: true
    expiresAt?: true
    isUsed?: true
    attempts?: true
    maxAttempts?: true
    createdAt?: true
    userId?: true
  }

  export type SmsCodeMaxAggregateInputType = {
    id?: true
    code?: true
    phone?: true
    expiresAt?: true
    isUsed?: true
    attempts?: true
    maxAttempts?: true
    createdAt?: true
    userId?: true
  }

  export type SmsCodeCountAggregateInputType = {
    id?: true
    code?: true
    phone?: true
    expiresAt?: true
    isUsed?: true
    attempts?: true
    maxAttempts?: true
    createdAt?: true
    userId?: true
    _all?: true
  }

  export type SmsCodeAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which SmsCode to aggregate.
     */
    where?: SmsCodeWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SmsCodes to fetch.
     */
    orderBy?: SmsCodeOrderByWithRelationInput | SmsCodeOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: SmsCodeWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SmsCodes 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` SmsCodes.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned SmsCodes
    **/
    _count?: true | SmsCodeCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: SmsCodeAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: SmsCodeSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: SmsCodeMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: SmsCodeMaxAggregateInputType
  }

  export type GetSmsCodeAggregateType<T extends SmsCodeAggregateArgs> = {
        [P in keyof T & keyof AggregateSmsCode]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateSmsCode[P]>
      : GetScalarType<T[P], AggregateSmsCode[P]>
  }




  export type SmsCodeGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: SmsCodeWhereInput
    orderBy?: SmsCodeOrderByWithAggregationInput | SmsCodeOrderByWithAggregationInput[]
    by: SmsCodeScalarFieldEnum[] | SmsCodeScalarFieldEnum
    having?: SmsCodeScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: SmsCodeCountAggregateInputType | true
    _avg?: SmsCodeAvgAggregateInputType
    _sum?: SmsCodeSumAggregateInputType
    _min?: SmsCodeMinAggregateInputType
    _max?: SmsCodeMaxAggregateInputType
  }

  export type SmsCodeGroupByOutputType = {
    id: string
    code: string
    phone: string
    expiresAt: Date
    isUsed: boolean
    attempts: number
    maxAttempts: number
    createdAt: Date
    userId: string | null
    _count: SmsCodeCountAggregateOutputType | null
    _avg: SmsCodeAvgAggregateOutputType | null
    _sum: SmsCodeSumAggregateOutputType | null
    _min: SmsCodeMinAggregateOutputType | null
    _max: SmsCodeMaxAggregateOutputType | null
  }

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


  export type SmsCodeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    phone?: boolean
    expiresAt?: boolean
    isUsed?: boolean
    attempts?: boolean
    maxAttempts?: boolean
    createdAt?: boolean
    userId?: boolean
    user?: boolean | SmsCode$userArgs<ExtArgs>
  }, ExtArgs["result"]["smsCode"]>

  export type SmsCodeSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    phone?: boolean
    expiresAt?: boolean
    isUsed?: boolean
    attempts?: boolean
    maxAttempts?: boolean
    createdAt?: boolean
    userId?: boolean
    user?: boolean | SmsCode$userArgs<ExtArgs>
  }, ExtArgs["result"]["smsCode"]>

  export type SmsCodeSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    phone?: boolean
    expiresAt?: boolean
    isUsed?: boolean
    attempts?: boolean
    maxAttempts?: boolean
    createdAt?: boolean
    userId?: boolean
    user?: boolean | SmsCode$userArgs<ExtArgs>
  }, ExtArgs["result"]["smsCode"]>

  export type SmsCodeSelectScalar = {
    id?: boolean
    code?: boolean
    phone?: boolean
    expiresAt?: boolean
    isUsed?: boolean
    attempts?: boolean
    maxAttempts?: boolean
    createdAt?: boolean
    userId?: boolean
  }

  export type SmsCodeOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "code" | "phone" | "expiresAt" | "isUsed" | "attempts" | "maxAttempts" | "createdAt" | "userId", ExtArgs["result"]["smsCode"]>
  export type SmsCodeInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | SmsCode$userArgs<ExtArgs>
  }
  export type SmsCodeIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | SmsCode$userArgs<ExtArgs>
  }
  export type SmsCodeIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | SmsCode$userArgs<ExtArgs>
  }

  export type $SmsCodePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "SmsCode"
    objects: {
      user: Prisma.$UserPayload<ExtArgs> | null
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      code: string
      phone: string
      expiresAt: Date
      isUsed: boolean
      attempts: number
      maxAttempts: number
      createdAt: Date
      userId: string | null
    }, ExtArgs["result"]["smsCode"]>
    composites: {}
  }

  type SmsCodeGetPayload<S extends boolean | null | undefined | SmsCodeDefaultArgs> = $Result.GetResult<Prisma.$SmsCodePayload, S>

  type SmsCodeCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<SmsCodeFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: SmsCodeCountAggregateInputType | true
    }

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

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

    /**
     * Find the first SmsCode 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 {SmsCodeFindFirstArgs} args - Arguments to find a SmsCode
     * @example
     * // Get one SmsCode
     * const smsCode = await prisma.smsCode.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends SmsCodeFindFirstArgs>(args?: SelectSubset<T, SmsCodeFindFirstArgs<ExtArgs>>): Prisma__SmsCodeClient<$Result.GetResult<Prisma.$SmsCodePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first SmsCode 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 {SmsCodeFindFirstOrThrowArgs} args - Arguments to find a SmsCode
     * @example
     * // Get one SmsCode
     * const smsCode = await prisma.smsCode.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends SmsCodeFindFirstOrThrowArgs>(args?: SelectSubset<T, SmsCodeFindFirstOrThrowArgs<ExtArgs>>): Prisma__SmsCodeClient<$Result.GetResult<Prisma.$SmsCodePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more SmsCodes 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 {SmsCodeFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all SmsCodes
     * const smsCodes = await prisma.smsCode.findMany()
     * 
     * // Get first 10 SmsCodes
     * const smsCodes = await prisma.smsCode.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const smsCodeWithIdOnly = await prisma.smsCode.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends SmsCodeFindManyArgs>(args?: SelectSubset<T, SmsCodeFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SmsCodePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a SmsCode.
     * @param {SmsCodeCreateArgs} args - Arguments to create a SmsCode.
     * @example
     * // Create one SmsCode
     * const SmsCode = await prisma.smsCode.create({
     *   data: {
     *     // ... data to create a SmsCode
     *   }
     * })
     * 
     */
    create<T extends SmsCodeCreateArgs>(args: SelectSubset<T, SmsCodeCreateArgs<ExtArgs>>): Prisma__SmsCodeClient<$Result.GetResult<Prisma.$SmsCodePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

    /**
     * Create many SmsCodes and returns the data saved in the database.
     * @param {SmsCodeCreateManyAndReturnArgs} args - Arguments to create many SmsCodes.
     * @example
     * // Create many SmsCodes
     * const smsCode = await prisma.smsCode.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many SmsCodes and only return the `id`
     * const smsCodeWithIdOnly = await prisma.smsCode.createManyAndReturn({
     *   select: { id: true },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    createManyAndReturn<T extends SmsCodeCreateManyAndReturnArgs>(args?: SelectSubset<T, SmsCodeCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SmsCodePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a SmsCode.
     * @param {SmsCodeDeleteArgs} args - Arguments to delete one SmsCode.
     * @example
     * // Delete one SmsCode
     * const SmsCode = await prisma.smsCode.delete({
     *   where: {
     *     // ... filter to delete one SmsCode
     *   }
     * })
     * 
     */
    delete<T extends SmsCodeDeleteArgs>(args: SelectSubset<T, SmsCodeDeleteArgs<ExtArgs>>): Prisma__SmsCodeClient<$Result.GetResult<Prisma.$SmsCodePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one SmsCode.
     * @param {SmsCodeUpdateArgs} args - Arguments to update one SmsCode.
     * @example
     * // Update one SmsCode
     * const smsCode = await prisma.smsCode.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends SmsCodeUpdateArgs>(args: SelectSubset<T, SmsCodeUpdateArgs<ExtArgs>>): Prisma__SmsCodeClient<$Result.GetResult<Prisma.$SmsCodePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

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

    /**
     * Update zero or more SmsCodes and returns the data updated in the database.
     * @param {SmsCodeUpdateManyAndReturnArgs} args - Arguments to update many SmsCodes.
     * @example
     * // Update many SmsCodes
     * const smsCode = await prisma.smsCode.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more SmsCodes and only return the `id`
     * const smsCodeWithIdOnly = await prisma.smsCode.updateManyAndReturn({
     *   select: { id: true },
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    updateManyAndReturn<T extends SmsCodeUpdateManyAndReturnArgs>(args: SelectSubset<T, SmsCodeUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SmsCodePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

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


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

    /**
     * Allows you to perform aggregations operations on a SmsCode.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SmsCodeAggregateArgs} 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 SmsCodeAggregateArgs>(args: Subset<T, SmsCodeAggregateArgs>): Prisma.PrismaPromise<GetSmsCodeAggregateType<T>>

    /**
     * Group by SmsCode.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SmsCodeGroupByArgs} 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 SmsCodeGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: SmsCodeGroupByArgs['orderBy'] }
        : { orderBy?: SmsCodeGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends 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 Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends 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 Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends 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 True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, SmsCodeGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetSmsCodeGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the SmsCode model
   */
  readonly fields: SmsCodeFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for SmsCode.
   * 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__SmsCodeClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    user<T extends SmsCode$userArgs<ExtArgs> = {}>(args?: Subset<T, SmsCode$userArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    /**
     * 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): $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): $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): $Utils.JsPromise<T>
  }




  /**
   * Fields of the SmsCode model
   */
  interface SmsCodeFieldRefs {
    readonly id: FieldRef<"SmsCode", 'String'>
    readonly code: FieldRef<"SmsCode", 'String'>
    readonly phone: FieldRef<"SmsCode", 'String'>
    readonly expiresAt: FieldRef<"SmsCode", 'DateTime'>
    readonly isUsed: FieldRef<"SmsCode", 'Boolean'>
    readonly attempts: FieldRef<"SmsCode", 'Int'>
    readonly maxAttempts: FieldRef<"SmsCode", 'Int'>
    readonly createdAt: FieldRef<"SmsCode", 'DateTime'>
    readonly userId: FieldRef<"SmsCode", 'String'>
  }
    

  // Custom InputTypes
  /**
   * SmsCode findUnique
   */
  export type SmsCodeFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SmsCode
     */
    select?: SmsCodeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SmsCode
     */
    omit?: SmsCodeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SmsCodeInclude<ExtArgs> | null
    /**
     * Filter, which SmsCode to fetch.
     */
    where: SmsCodeWhereUniqueInput
  }

  /**
   * SmsCode findUniqueOrThrow
   */
  export type SmsCodeFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SmsCode
     */
    select?: SmsCodeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SmsCode
     */
    omit?: SmsCodeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SmsCodeInclude<ExtArgs> | null
    /**
     * Filter, which SmsCode to fetch.
     */
    where: SmsCodeWhereUniqueInput
  }

  /**
   * SmsCode findFirst
   */
  export type SmsCodeFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SmsCode
     */
    select?: SmsCodeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SmsCode
     */
    omit?: SmsCodeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SmsCodeInclude<ExtArgs> | null
    /**
     * Filter, which SmsCode to fetch.
     */
    where?: SmsCodeWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SmsCodes to fetch.
     */
    orderBy?: SmsCodeOrderByWithRelationInput | SmsCodeOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for SmsCodes.
     */
    cursor?: SmsCodeWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SmsCodes 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` SmsCodes.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of SmsCodes.
     */
    distinct?: SmsCodeScalarFieldEnum | SmsCodeScalarFieldEnum[]
  }

  /**
   * SmsCode findFirstOrThrow
   */
  export type SmsCodeFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SmsCode
     */
    select?: SmsCodeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SmsCode
     */
    omit?: SmsCodeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SmsCodeInclude<ExtArgs> | null
    /**
     * Filter, which SmsCode to fetch.
     */
    where?: SmsCodeWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SmsCodes to fetch.
     */
    orderBy?: SmsCodeOrderByWithRelationInput | SmsCodeOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for SmsCodes.
     */
    cursor?: SmsCodeWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SmsCodes 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` SmsCodes.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of SmsCodes.
     */
    distinct?: SmsCodeScalarFieldEnum | SmsCodeScalarFieldEnum[]
  }

  /**
   * SmsCode findMany
   */
  export type SmsCodeFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SmsCode
     */
    select?: SmsCodeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SmsCode
     */
    omit?: SmsCodeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SmsCodeInclude<ExtArgs> | null
    /**
     * Filter, which SmsCodes to fetch.
     */
    where?: SmsCodeWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SmsCodes to fetch.
     */
    orderBy?: SmsCodeOrderByWithRelationInput | SmsCodeOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing SmsCodes.
     */
    cursor?: SmsCodeWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SmsCodes 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` SmsCodes.
     */
    skip?: number
    distinct?: SmsCodeScalarFieldEnum | SmsCodeScalarFieldEnum[]
  }

  /**
   * SmsCode create
   */
  export type SmsCodeCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SmsCode
     */
    select?: SmsCodeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SmsCode
     */
    omit?: SmsCodeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SmsCodeInclude<ExtArgs> | null
    /**
     * The data needed to create a SmsCode.
     */
    data: XOR<SmsCodeCreateInput, SmsCodeUncheckedCreateInput>
  }

  /**
   * SmsCode createMany
   */
  export type SmsCodeCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many SmsCodes.
     */
    data: SmsCodeCreateManyInput | SmsCodeCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * SmsCode createManyAndReturn
   */
  export type SmsCodeCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SmsCode
     */
    select?: SmsCodeSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the SmsCode
     */
    omit?: SmsCodeOmit<ExtArgs> | null
    /**
     * The data used to create many SmsCodes.
     */
    data: SmsCodeCreateManyInput | SmsCodeCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SmsCodeIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * SmsCode update
   */
  export type SmsCodeUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SmsCode
     */
    select?: SmsCodeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SmsCode
     */
    omit?: SmsCodeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SmsCodeInclude<ExtArgs> | null
    /**
     * The data needed to update a SmsCode.
     */
    data: XOR<SmsCodeUpdateInput, SmsCodeUncheckedUpdateInput>
    /**
     * Choose, which SmsCode to update.
     */
    where: SmsCodeWhereUniqueInput
  }

  /**
   * SmsCode updateMany
   */
  export type SmsCodeUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update SmsCodes.
     */
    data: XOR<SmsCodeUpdateManyMutationInput, SmsCodeUncheckedUpdateManyInput>
    /**
     * Filter which SmsCodes to update
     */
    where?: SmsCodeWhereInput
    /**
     * Limit how many SmsCodes to update.
     */
    limit?: number
  }

  /**
   * SmsCode updateManyAndReturn
   */
  export type SmsCodeUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SmsCode
     */
    select?: SmsCodeSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the SmsCode
     */
    omit?: SmsCodeOmit<ExtArgs> | null
    /**
     * The data used to update SmsCodes.
     */
    data: XOR<SmsCodeUpdateManyMutationInput, SmsCodeUncheckedUpdateManyInput>
    /**
     * Filter which SmsCodes to update
     */
    where?: SmsCodeWhereInput
    /**
     * Limit how many SmsCodes to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SmsCodeIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * SmsCode upsert
   */
  export type SmsCodeUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SmsCode
     */
    select?: SmsCodeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SmsCode
     */
    omit?: SmsCodeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SmsCodeInclude<ExtArgs> | null
    /**
     * The filter to search for the SmsCode to update in case it exists.
     */
    where: SmsCodeWhereUniqueInput
    /**
     * In case the SmsCode found by the `where` argument doesn't exist, create a new SmsCode with this data.
     */
    create: XOR<SmsCodeCreateInput, SmsCodeUncheckedCreateInput>
    /**
     * In case the SmsCode was found with the provided `where` argument, update it with this data.
     */
    update: XOR<SmsCodeUpdateInput, SmsCodeUncheckedUpdateInput>
  }

  /**
   * SmsCode delete
   */
  export type SmsCodeDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SmsCode
     */
    select?: SmsCodeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SmsCode
     */
    omit?: SmsCodeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SmsCodeInclude<ExtArgs> | null
    /**
     * Filter which SmsCode to delete.
     */
    where: SmsCodeWhereUniqueInput
  }

  /**
   * SmsCode deleteMany
   */
  export type SmsCodeDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which SmsCodes to delete
     */
    where?: SmsCodeWhereInput
    /**
     * Limit how many SmsCodes to delete.
     */
    limit?: number
  }

  /**
   * SmsCode.user
   */
  export type SmsCode$userArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the User
     */
    select?: UserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the User
     */
    omit?: UserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserInclude<ExtArgs> | null
    where?: UserWhereInput
  }

  /**
   * SmsCode without action
   */
  export type SmsCodeDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SmsCode
     */
    select?: SmsCodeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SmsCode
     */
    omit?: SmsCodeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SmsCodeInclude<ExtArgs> | null
  }


  /**
   * Model Organization
   */

  export type AggregateOrganization = {
    _count: OrganizationCountAggregateOutputType | null
    _avg: OrganizationAvgAggregateOutputType | null
    _sum: OrganizationSumAggregateOutputType | null
    _min: OrganizationMinAggregateOutputType | null
    _max: OrganizationMaxAggregateOutputType | null
  }

  export type OrganizationAvgAggregateOutputType = {
    employeeCount: number | null
    revenue: number | null
  }

  export type OrganizationSumAggregateOutputType = {
    employeeCount: number | null
    revenue: bigint | null
  }

  export type OrganizationMinAggregateOutputType = {
    id: string | null
    inn: string | null
    kpp: string | null
    name: string | null
    fullName: string | null
    ogrn: string | null
    ogrnDate: Date | null
    type: $Enums.OrganizationType | null
    createdAt: Date | null
    updatedAt: Date | null
    address: string | null
    addressFull: string | null
    status: string | null
    actualityDate: Date | null
    registrationDate: Date | null
    liquidationDate: Date | null
    managementName: string | null
    managementPost: string | null
    opfCode: string | null
    opfFull: string | null
    opfShort: string | null
    okato: string | null
    oktmo: string | null
    okpo: string | null
    okved: string | null
    employeeCount: number | null
    revenue: bigint | null
    taxSystem: string | null
  }

  export type OrganizationMaxAggregateOutputType = {
    id: string | null
    inn: string | null
    kpp: string | null
    name: string | null
    fullName: string | null
    ogrn: string | null
    ogrnDate: Date | null
    type: $Enums.OrganizationType | null
    createdAt: Date | null
    updatedAt: Date | null
    address: string | null
    addressFull: string | null
    status: string | null
    actualityDate: Date | null
    registrationDate: Date | null
    liquidationDate: Date | null
    managementName: string | null
    managementPost: string | null
    opfCode: string | null
    opfFull: string | null
    opfShort: string | null
    okato: string | null
    oktmo: string | null
    okpo: string | null
    okved: string | null
    employeeCount: number | null
    revenue: bigint | null
    taxSystem: string | null
  }

  export type OrganizationCountAggregateOutputType = {
    id: number
    inn: number
    kpp: number
    name: number
    fullName: number
    ogrn: number
    ogrnDate: number
    type: number
    createdAt: number
    updatedAt: number
    address: number
    addressFull: number
    status: number
    actualityDate: number
    registrationDate: number
    liquidationDate: number
    managementName: number
    managementPost: number
    opfCode: number
    opfFull: number
    opfShort: number
    okato: number
    oktmo: number
    okpo: number
    okved: number
    phones: number
    emails: number
    employeeCount: number
    revenue: number
    taxSystem: number
    dadataData: number
    _all: number
  }


  export type OrganizationAvgAggregateInputType = {
    employeeCount?: true
    revenue?: true
  }

  export type OrganizationSumAggregateInputType = {
    employeeCount?: true
    revenue?: true
  }

  export type OrganizationMinAggregateInputType = {
    id?: true
    inn?: true
    kpp?: true
    name?: true
    fullName?: true
    ogrn?: true
    ogrnDate?: true
    type?: true
    createdAt?: true
    updatedAt?: true
    address?: true
    addressFull?: true
    status?: true
    actualityDate?: true
    registrationDate?: true
    liquidationDate?: true
    managementName?: true
    managementPost?: true
    opfCode?: true
    opfFull?: true
    opfShort?: true
    okato?: true
    oktmo?: true
    okpo?: true
    okved?: true
    employeeCount?: true
    revenue?: true
    taxSystem?: true
  }

  export type OrganizationMaxAggregateInputType = {
    id?: true
    inn?: true
    kpp?: true
    name?: true
    fullName?: true
    ogrn?: true
    ogrnDate?: true
    type?: true
    createdAt?: true
    updatedAt?: true
    address?: true
    addressFull?: true
    status?: true
    actualityDate?: true
    registrationDate?: true
    liquidationDate?: true
    managementName?: true
    managementPost?: true
    opfCode?: true
    opfFull?: true
    opfShort?: true
    okato?: true
    oktmo?: true
    okpo?: true
    okved?: true
    employeeCount?: true
    revenue?: true
    taxSystem?: true
  }

  export type OrganizationCountAggregateInputType = {
    id?: true
    inn?: true
    kpp?: true
    name?: true
    fullName?: true
    ogrn?: true
    ogrnDate?: true
    type?: true
    createdAt?: true
    updatedAt?: true
    address?: true
    addressFull?: true
    status?: true
    actualityDate?: true
    registrationDate?: true
    liquidationDate?: true
    managementName?: true
    managementPost?: true
    opfCode?: true
    opfFull?: true
    opfShort?: true
    okato?: true
    oktmo?: true
    okpo?: true
    okved?: true
    phones?: true
    emails?: true
    employeeCount?: true
    revenue?: true
    taxSystem?: true
    dadataData?: true
    _all?: true
  }

  export type OrganizationAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Organization to aggregate.
     */
    where?: OrganizationWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Organizations to fetch.
     */
    orderBy?: OrganizationOrderByWithRelationInput | OrganizationOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: OrganizationWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Organizations 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` Organizations.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned Organizations
    **/
    _count?: true | OrganizationCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: OrganizationAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: OrganizationSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: OrganizationMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: OrganizationMaxAggregateInputType
  }

  export type GetOrganizationAggregateType<T extends OrganizationAggregateArgs> = {
        [P in keyof T & keyof AggregateOrganization]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateOrganization[P]>
      : GetScalarType<T[P], AggregateOrganization[P]>
  }




  export type OrganizationGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: OrganizationWhereInput
    orderBy?: OrganizationOrderByWithAggregationInput | OrganizationOrderByWithAggregationInput[]
    by: OrganizationScalarFieldEnum[] | OrganizationScalarFieldEnum
    having?: OrganizationScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: OrganizationCountAggregateInputType | true
    _avg?: OrganizationAvgAggregateInputType
    _sum?: OrganizationSumAggregateInputType
    _min?: OrganizationMinAggregateInputType
    _max?: OrganizationMaxAggregateInputType
  }

  export type OrganizationGroupByOutputType = {
    id: string
    inn: string
    kpp: string | null
    name: string | null
    fullName: string | null
    ogrn: string | null
    ogrnDate: Date | null
    type: $Enums.OrganizationType
    createdAt: Date
    updatedAt: Date
    address: string | null
    addressFull: string | null
    status: string | null
    actualityDate: Date | null
    registrationDate: Date | null
    liquidationDate: Date | null
    managementName: string | null
    managementPost: string | null
    opfCode: string | null
    opfFull: string | null
    opfShort: string | null
    okato: string | null
    oktmo: string | null
    okpo: string | null
    okved: string | null
    phones: JsonValue | null
    emails: JsonValue | null
    employeeCount: number | null
    revenue: bigint | null
    taxSystem: string | null
    dadataData: JsonValue | null
    _count: OrganizationCountAggregateOutputType | null
    _avg: OrganizationAvgAggregateOutputType | null
    _sum: OrganizationSumAggregateOutputType | null
    _min: OrganizationMinAggregateOutputType | null
    _max: OrganizationMaxAggregateOutputType | null
  }

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


  export type OrganizationSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    inn?: boolean
    kpp?: boolean
    name?: boolean
    fullName?: boolean
    ogrn?: boolean
    ogrnDate?: boolean
    type?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    address?: boolean
    addressFull?: boolean
    status?: boolean
    actualityDate?: boolean
    registrationDate?: boolean
    liquidationDate?: boolean
    managementName?: boolean
    managementPost?: boolean
    opfCode?: boolean
    opfFull?: boolean
    opfShort?: boolean
    okato?: boolean
    oktmo?: boolean
    okpo?: boolean
    okved?: boolean
    phones?: boolean
    emails?: boolean
    employeeCount?: boolean
    revenue?: boolean
    taxSystem?: boolean
    dadataData?: boolean
    apiKeys?: boolean | Organization$apiKeysArgs<ExtArgs>
    carts?: boolean | Organization$cartsArgs<ExtArgs>
    counterpartyOf?: boolean | Organization$counterpartyOfArgs<ExtArgs>
    organizationCounterparties?: boolean | Organization$organizationCounterpartiesArgs<ExtArgs>
    receivedRequests?: boolean | Organization$receivedRequestsArgs<ExtArgs>
    sentRequests?: boolean | Organization$sentRequestsArgs<ExtArgs>
    employees?: boolean | Organization$employeesArgs<ExtArgs>
    favorites?: boolean | Organization$favoritesArgs<ExtArgs>
    receivedMessages?: boolean | Organization$receivedMessagesArgs<ExtArgs>
    sentMessages?: boolean | Organization$sentMessagesArgs<ExtArgs>
    products?: boolean | Organization$productsArgs<ExtArgs>
    services?: boolean | Organization$servicesArgs<ExtArgs>
    supplies?: boolean | Organization$suppliesArgs<ExtArgs>
    users?: boolean | Organization$usersArgs<ExtArgs>
    logistics?: boolean | Organization$logisticsArgs<ExtArgs>
    supplyOrders?: boolean | Organization$supplyOrdersArgs<ExtArgs>
    partnerSupplyOrders?: boolean | Organization$partnerSupplyOrdersArgs<ExtArgs>
    fulfillmentSupplyOrders?: boolean | Organization$fulfillmentSupplyOrdersArgs<ExtArgs>
    wildberriesSupplies?: boolean | Organization$wildberriesSuppliesArgs<ExtArgs>
    supplySuppliers?: boolean | Organization$supplySuppliersArgs<ExtArgs>
    _count?: boolean | OrganizationCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["organization"]>

  export type OrganizationSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    inn?: boolean
    kpp?: boolean
    name?: boolean
    fullName?: boolean
    ogrn?: boolean
    ogrnDate?: boolean
    type?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    address?: boolean
    addressFull?: boolean
    status?: boolean
    actualityDate?: boolean
    registrationDate?: boolean
    liquidationDate?: boolean
    managementName?: boolean
    managementPost?: boolean
    opfCode?: boolean
    opfFull?: boolean
    opfShort?: boolean
    okato?: boolean
    oktmo?: boolean
    okpo?: boolean
    okved?: boolean
    phones?: boolean
    emails?: boolean
    employeeCount?: boolean
    revenue?: boolean
    taxSystem?: boolean
    dadataData?: boolean
  }, ExtArgs["result"]["organization"]>

  export type OrganizationSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    inn?: boolean
    kpp?: boolean
    name?: boolean
    fullName?: boolean
    ogrn?: boolean
    ogrnDate?: boolean
    type?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    address?: boolean
    addressFull?: boolean
    status?: boolean
    actualityDate?: boolean
    registrationDate?: boolean
    liquidationDate?: boolean
    managementName?: boolean
    managementPost?: boolean
    opfCode?: boolean
    opfFull?: boolean
    opfShort?: boolean
    okato?: boolean
    oktmo?: boolean
    okpo?: boolean
    okved?: boolean
    phones?: boolean
    emails?: boolean
    employeeCount?: boolean
    revenue?: boolean
    taxSystem?: boolean
    dadataData?: boolean
  }, ExtArgs["result"]["organization"]>

  export type OrganizationSelectScalar = {
    id?: boolean
    inn?: boolean
    kpp?: boolean
    name?: boolean
    fullName?: boolean
    ogrn?: boolean
    ogrnDate?: boolean
    type?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    address?: boolean
    addressFull?: boolean
    status?: boolean
    actualityDate?: boolean
    registrationDate?: boolean
    liquidationDate?: boolean
    managementName?: boolean
    managementPost?: boolean
    opfCode?: boolean
    opfFull?: boolean
    opfShort?: boolean
    okato?: boolean
    oktmo?: boolean
    okpo?: boolean
    okved?: boolean
    phones?: boolean
    emails?: boolean
    employeeCount?: boolean
    revenue?: boolean
    taxSystem?: boolean
    dadataData?: boolean
  }

  export type OrganizationOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "inn" | "kpp" | "name" | "fullName" | "ogrn" | "ogrnDate" | "type" | "createdAt" | "updatedAt" | "address" | "addressFull" | "status" | "actualityDate" | "registrationDate" | "liquidationDate" | "managementName" | "managementPost" | "opfCode" | "opfFull" | "opfShort" | "okato" | "oktmo" | "okpo" | "okved" | "phones" | "emails" | "employeeCount" | "revenue" | "taxSystem" | "dadataData", ExtArgs["result"]["organization"]>
  export type OrganizationInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    apiKeys?: boolean | Organization$apiKeysArgs<ExtArgs>
    carts?: boolean | Organization$cartsArgs<ExtArgs>
    counterpartyOf?: boolean | Organization$counterpartyOfArgs<ExtArgs>
    organizationCounterparties?: boolean | Organization$organizationCounterpartiesArgs<ExtArgs>
    receivedRequests?: boolean | Organization$receivedRequestsArgs<ExtArgs>
    sentRequests?: boolean | Organization$sentRequestsArgs<ExtArgs>
    employees?: boolean | Organization$employeesArgs<ExtArgs>
    favorites?: boolean | Organization$favoritesArgs<ExtArgs>
    receivedMessages?: boolean | Organization$receivedMessagesArgs<ExtArgs>
    sentMessages?: boolean | Organization$sentMessagesArgs<ExtArgs>
    products?: boolean | Organization$productsArgs<ExtArgs>
    services?: boolean | Organization$servicesArgs<ExtArgs>
    supplies?: boolean | Organization$suppliesArgs<ExtArgs>
    users?: boolean | Organization$usersArgs<ExtArgs>
    logistics?: boolean | Organization$logisticsArgs<ExtArgs>
    supplyOrders?: boolean | Organization$supplyOrdersArgs<ExtArgs>
    partnerSupplyOrders?: boolean | Organization$partnerSupplyOrdersArgs<ExtArgs>
    fulfillmentSupplyOrders?: boolean | Organization$fulfillmentSupplyOrdersArgs<ExtArgs>
    wildberriesSupplies?: boolean | Organization$wildberriesSuppliesArgs<ExtArgs>
    supplySuppliers?: boolean | Organization$supplySuppliersArgs<ExtArgs>
    _count?: boolean | OrganizationCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type OrganizationIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}
  export type OrganizationIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}

  export type $OrganizationPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "Organization"
    objects: {
      apiKeys: Prisma.$ApiKeyPayload<ExtArgs>[]
      carts: Prisma.$CartPayload<ExtArgs> | null
      counterpartyOf: Prisma.$CounterpartyPayload<ExtArgs>[]
      organizationCounterparties: Prisma.$CounterpartyPayload<ExtArgs>[]
      receivedRequests: Prisma.$CounterpartyRequestPayload<ExtArgs>[]
      sentRequests: Prisma.$CounterpartyRequestPayload<ExtArgs>[]
      employees: Prisma.$EmployeePayload<ExtArgs>[]
      favorites: Prisma.$FavoritesPayload<ExtArgs>[]
      receivedMessages: Prisma.$MessagePayload<ExtArgs>[]
      sentMessages: Prisma.$MessagePayload<ExtArgs>[]
      products: Prisma.$ProductPayload<ExtArgs>[]
      services: Prisma.$ServicePayload<ExtArgs>[]
      supplies: Prisma.$SupplyPayload<ExtArgs>[]
      users: Prisma.$UserPayload<ExtArgs>[]
      logistics: Prisma.$LogisticsPayload<ExtArgs>[]
      supplyOrders: Prisma.$SupplyOrderPayload<ExtArgs>[]
      partnerSupplyOrders: Prisma.$SupplyOrderPayload<ExtArgs>[]
      fulfillmentSupplyOrders: Prisma.$SupplyOrderPayload<ExtArgs>[]
      wildberriesSupplies: Prisma.$WildberriesSupplyPayload<ExtArgs>[]
      supplySuppliers: Prisma.$SupplySupplierPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      inn: string
      kpp: string | null
      name: string | null
      fullName: string | null
      ogrn: string | null
      ogrnDate: Date | null
      type: $Enums.OrganizationType
      createdAt: Date
      updatedAt: Date
      address: string | null
      addressFull: string | null
      status: string | null
      actualityDate: Date | null
      registrationDate: Date | null
      liquidationDate: Date | null
      managementName: string | null
      managementPost: string | null
      opfCode: string | null
      opfFull: string | null
      opfShort: string | null
      okato: string | null
      oktmo: string | null
      okpo: string | null
      okved: string | null
      phones: Prisma.JsonValue | null
      emails: Prisma.JsonValue | null
      employeeCount: number | null
      revenue: bigint | null
      taxSystem: string | null
      dadataData: Prisma.JsonValue | null
    }, ExtArgs["result"]["organization"]>
    composites: {}
  }

  type OrganizationGetPayload<S extends boolean | null | undefined | OrganizationDefaultArgs> = $Result.GetResult<Prisma.$OrganizationPayload, S>

  type OrganizationCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<OrganizationFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: OrganizationCountAggregateInputType | true
    }

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

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

    /**
     * Find the first Organization 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 {OrganizationFindFirstArgs} args - Arguments to find a Organization
     * @example
     * // Get one Organization
     * const organization = await prisma.organization.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends OrganizationFindFirstArgs>(args?: SelectSubset<T, OrganizationFindFirstArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Organization 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 {OrganizationFindFirstOrThrowArgs} args - Arguments to find a Organization
     * @example
     * // Get one Organization
     * const organization = await prisma.organization.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends OrganizationFindFirstOrThrowArgs>(args?: SelectSubset<T, OrganizationFindFirstOrThrowArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more Organizations 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 {OrganizationFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all Organizations
     * const organizations = await prisma.organization.findMany()
     * 
     * // Get first 10 Organizations
     * const organizations = await prisma.organization.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const organizationWithIdOnly = await prisma.organization.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends OrganizationFindManyArgs>(args?: SelectSubset<T, OrganizationFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a Organization.
     * @param {OrganizationCreateArgs} args - Arguments to create a Organization.
     * @example
     * // Create one Organization
     * const Organization = await prisma.organization.create({
     *   data: {
     *     // ... data to create a Organization
     *   }
     * })
     * 
     */
    create<T extends OrganizationCreateArgs>(args: SelectSubset<T, OrganizationCreateArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

    /**
     * Create many Organizations and returns the data saved in the database.
     * @param {OrganizationCreateManyAndReturnArgs} args - Arguments to create many Organizations.
     * @example
     * // Create many Organizations
     * const organization = await prisma.organization.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many Organizations and only return the `id`
     * const organizationWithIdOnly = await prisma.organization.createManyAndReturn({
     *   select: { id: true },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    createManyAndReturn<T extends OrganizationCreateManyAndReturnArgs>(args?: SelectSubset<T, OrganizationCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a Organization.
     * @param {OrganizationDeleteArgs} args - Arguments to delete one Organization.
     * @example
     * // Delete one Organization
     * const Organization = await prisma.organization.delete({
     *   where: {
     *     // ... filter to delete one Organization
     *   }
     * })
     * 
     */
    delete<T extends OrganizationDeleteArgs>(args: SelectSubset<T, OrganizationDeleteArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one Organization.
     * @param {OrganizationUpdateArgs} args - Arguments to update one Organization.
     * @example
     * // Update one Organization
     * const organization = await prisma.organization.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends OrganizationUpdateArgs>(args: SelectSubset<T, OrganizationUpdateArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

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

    /**
     * Update zero or more Organizations and returns the data updated in the database.
     * @param {OrganizationUpdateManyAndReturnArgs} args - Arguments to update many Organizations.
     * @example
     * // Update many Organizations
     * const organization = await prisma.organization.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more Organizations and only return the `id`
     * const organizationWithIdOnly = await prisma.organization.updateManyAndReturn({
     *   select: { id: true },
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    updateManyAndReturn<T extends OrganizationUpdateManyAndReturnArgs>(args: SelectSubset<T, OrganizationUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

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


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

    /**
     * Allows you to perform aggregations operations on a Organization.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OrganizationAggregateArgs} 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 OrganizationAggregateArgs>(args: Subset<T, OrganizationAggregateArgs>): Prisma.PrismaPromise<GetOrganizationAggregateType<T>>

    /**
     * Group by Organization.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OrganizationGroupByArgs} 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 OrganizationGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: OrganizationGroupByArgs['orderBy'] }
        : { orderBy?: OrganizationGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends 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 Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends 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 Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends 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 True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, OrganizationGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetOrganizationGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the Organization model
   */
  readonly fields: OrganizationFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for Organization.
   * 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__OrganizationClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    apiKeys<T extends Organization$apiKeysArgs<ExtArgs> = {}>(args?: Subset<T, Organization$apiKeysArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ApiKeyPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    carts<T extends Organization$cartsArgs<ExtArgs> = {}>(args?: Subset<T, Organization$cartsArgs<ExtArgs>>): Prisma__CartClient<$Result.GetResult<Prisma.$CartPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    counterpartyOf<T extends Organization$counterpartyOfArgs<ExtArgs> = {}>(args?: Subset<T, Organization$counterpartyOfArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$CounterpartyPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    organizationCounterparties<T extends Organization$organizationCounterpartiesArgs<ExtArgs> = {}>(args?: Subset<T, Organization$organizationCounterpartiesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$CounterpartyPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    receivedRequests<T extends Organization$receivedRequestsArgs<ExtArgs> = {}>(args?: Subset<T, Organization$receivedRequestsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$CounterpartyRequestPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    sentRequests<T extends Organization$sentRequestsArgs<ExtArgs> = {}>(args?: Subset<T, Organization$sentRequestsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$CounterpartyRequestPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    employees<T extends Organization$employeesArgs<ExtArgs> = {}>(args?: Subset<T, Organization$employeesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$EmployeePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    favorites<T extends Organization$favoritesArgs<ExtArgs> = {}>(args?: Subset<T, Organization$favoritesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FavoritesPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    receivedMessages<T extends Organization$receivedMessagesArgs<ExtArgs> = {}>(args?: Subset<T, Organization$receivedMessagesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MessagePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    sentMessages<T extends Organization$sentMessagesArgs<ExtArgs> = {}>(args?: Subset<T, Organization$sentMessagesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MessagePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    products<T extends Organization$productsArgs<ExtArgs> = {}>(args?: Subset<T, Organization$productsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ProductPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    services<T extends Organization$servicesArgs<ExtArgs> = {}>(args?: Subset<T, Organization$servicesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ServicePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    supplies<T extends Organization$suppliesArgs<ExtArgs> = {}>(args?: Subset<T, Organization$suppliesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SupplyPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    users<T extends Organization$usersArgs<ExtArgs> = {}>(args?: Subset<T, Organization$usersArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    logistics<T extends Organization$logisticsArgs<ExtArgs> = {}>(args?: Subset<T, Organization$logisticsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$LogisticsPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    supplyOrders<T extends Organization$supplyOrdersArgs<ExtArgs> = {}>(args?: Subset<T, Organization$supplyOrdersArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SupplyOrderPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    partnerSupplyOrders<T extends Organization$partnerSupplyOrdersArgs<ExtArgs> = {}>(args?: Subset<T, Organization$partnerSupplyOrdersArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SupplyOrderPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    fulfillmentSupplyOrders<T extends Organization$fulfillmentSupplyOrdersArgs<ExtArgs> = {}>(args?: Subset<T, Organization$fulfillmentSupplyOrdersArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SupplyOrderPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    wildberriesSupplies<T extends Organization$wildberriesSuppliesArgs<ExtArgs> = {}>(args?: Subset<T, Organization$wildberriesSuppliesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$WildberriesSupplyPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    supplySuppliers<T extends Organization$supplySuppliersArgs<ExtArgs> = {}>(args?: Subset<T, Organization$supplySuppliersArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SupplySupplierPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * 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): $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): $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): $Utils.JsPromise<T>
  }




  /**
   * Fields of the Organization model
   */
  interface OrganizationFieldRefs {
    readonly id: FieldRef<"Organization", 'String'>
    readonly inn: FieldRef<"Organization", 'String'>
    readonly kpp: FieldRef<"Organization", 'String'>
    readonly name: FieldRef<"Organization", 'String'>
    readonly fullName: FieldRef<"Organization", 'String'>
    readonly ogrn: FieldRef<"Organization", 'String'>
    readonly ogrnDate: FieldRef<"Organization", 'DateTime'>
    readonly type: FieldRef<"Organization", 'OrganizationType'>
    readonly createdAt: FieldRef<"Organization", 'DateTime'>
    readonly updatedAt: FieldRef<"Organization", 'DateTime'>
    readonly address: FieldRef<"Organization", 'String'>
    readonly addressFull: FieldRef<"Organization", 'String'>
    readonly status: FieldRef<"Organization", 'String'>
    readonly actualityDate: FieldRef<"Organization", 'DateTime'>
    readonly registrationDate: FieldRef<"Organization", 'DateTime'>
    readonly liquidationDate: FieldRef<"Organization", 'DateTime'>
    readonly managementName: FieldRef<"Organization", 'String'>
    readonly managementPost: FieldRef<"Organization", 'String'>
    readonly opfCode: FieldRef<"Organization", 'String'>
    readonly opfFull: FieldRef<"Organization", 'String'>
    readonly opfShort: FieldRef<"Organization", 'String'>
    readonly okato: FieldRef<"Organization", 'String'>
    readonly oktmo: FieldRef<"Organization", 'String'>
    readonly okpo: FieldRef<"Organization", 'String'>
    readonly okved: FieldRef<"Organization", 'String'>
    readonly phones: FieldRef<"Organization", 'Json'>
    readonly emails: FieldRef<"Organization", 'Json'>
    readonly employeeCount: FieldRef<"Organization", 'Int'>
    readonly revenue: FieldRef<"Organization", 'BigInt'>
    readonly taxSystem: FieldRef<"Organization", 'String'>
    readonly dadataData: FieldRef<"Organization", 'Json'>
  }
    

  // Custom InputTypes
  /**
   * Organization findUnique
   */
  export type OrganizationFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Organization
     */
    select?: OrganizationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Organization
     */
    omit?: OrganizationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OrganizationInclude<ExtArgs> | null
    /**
     * Filter, which Organization to fetch.
     */
    where: OrganizationWhereUniqueInput
  }

  /**
   * Organization findUniqueOrThrow
   */
  export type OrganizationFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Organization
     */
    select?: OrganizationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Organization
     */
    omit?: OrganizationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OrganizationInclude<ExtArgs> | null
    /**
     * Filter, which Organization to fetch.
     */
    where: OrganizationWhereUniqueInput
  }

  /**
   * Organization findFirst
   */
  export type OrganizationFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Organization
     */
    select?: OrganizationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Organization
     */
    omit?: OrganizationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OrganizationInclude<ExtArgs> | null
    /**
     * Filter, which Organization to fetch.
     */
    where?: OrganizationWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Organizations to fetch.
     */
    orderBy?: OrganizationOrderByWithRelationInput | OrganizationOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Organizations.
     */
    cursor?: OrganizationWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Organizations 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` Organizations.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Organizations.
     */
    distinct?: OrganizationScalarFieldEnum | OrganizationScalarFieldEnum[]
  }

  /**
   * Organization findFirstOrThrow
   */
  export type OrganizationFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Organization
     */
    select?: OrganizationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Organization
     */
    omit?: OrganizationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OrganizationInclude<ExtArgs> | null
    /**
     * Filter, which Organization to fetch.
     */
    where?: OrganizationWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Organizations to fetch.
     */
    orderBy?: OrganizationOrderByWithRelationInput | OrganizationOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Organizations.
     */
    cursor?: OrganizationWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Organizations 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` Organizations.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Organizations.
     */
    distinct?: OrganizationScalarFieldEnum | OrganizationScalarFieldEnum[]
  }

  /**
   * Organization findMany
   */
  export type OrganizationFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Organization
     */
    select?: OrganizationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Organization
     */
    omit?: OrganizationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OrganizationInclude<ExtArgs> | null
    /**
     * Filter, which Organizations to fetch.
     */
    where?: OrganizationWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Organizations to fetch.
     */
    orderBy?: OrganizationOrderByWithRelationInput | OrganizationOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing Organizations.
     */
    cursor?: OrganizationWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Organizations 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` Organizations.
     */
    skip?: number
    distinct?: OrganizationScalarFieldEnum | OrganizationScalarFieldEnum[]
  }

  /**
   * Organization create
   */
  export type OrganizationCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Organization
     */
    select?: OrganizationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Organization
     */
    omit?: OrganizationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OrganizationInclude<ExtArgs> | null
    /**
     * The data needed to create a Organization.
     */
    data: XOR<OrganizationCreateInput, OrganizationUncheckedCreateInput>
  }

  /**
   * Organization createMany
   */
  export type OrganizationCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many Organizations.
     */
    data: OrganizationCreateManyInput | OrganizationCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Organization createManyAndReturn
   */
  export type OrganizationCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Organization
     */
    select?: OrganizationSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Organization
     */
    omit?: OrganizationOmit<ExtArgs> | null
    /**
     * The data used to create many Organizations.
     */
    data: OrganizationCreateManyInput | OrganizationCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Organization update
   */
  export type OrganizationUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Organization
     */
    select?: OrganizationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Organization
     */
    omit?: OrganizationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OrganizationInclude<ExtArgs> | null
    /**
     * The data needed to update a Organization.
     */
    data: XOR<OrganizationUpdateInput, OrganizationUncheckedUpdateInput>
    /**
     * Choose, which Organization to update.
     */
    where: OrganizationWhereUniqueInput
  }

  /**
   * Organization updateMany
   */
  export type OrganizationUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update Organizations.
     */
    data: XOR<OrganizationUpdateManyMutationInput, OrganizationUncheckedUpdateManyInput>
    /**
     * Filter which Organizations to update
     */
    where?: OrganizationWhereInput
    /**
     * Limit how many Organizations to update.
     */
    limit?: number
  }

  /**
   * Organization updateManyAndReturn
   */
  export type OrganizationUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Organization
     */
    select?: OrganizationSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Organization
     */
    omit?: OrganizationOmit<ExtArgs> | null
    /**
     * The data used to update Organizations.
     */
    data: XOR<OrganizationUpdateManyMutationInput, OrganizationUncheckedUpdateManyInput>
    /**
     * Filter which Organizations to update
     */
    where?: OrganizationWhereInput
    /**
     * Limit how many Organizations to update.
     */
    limit?: number
  }

  /**
   * Organization upsert
   */
  export type OrganizationUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Organization
     */
    select?: OrganizationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Organization
     */
    omit?: OrganizationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OrganizationInclude<ExtArgs> | null
    /**
     * The filter to search for the Organization to update in case it exists.
     */
    where: OrganizationWhereUniqueInput
    /**
     * In case the Organization found by the `where` argument doesn't exist, create a new Organization with this data.
     */
    create: XOR<OrganizationCreateInput, OrganizationUncheckedCreateInput>
    /**
     * In case the Organization was found with the provided `where` argument, update it with this data.
     */
    update: XOR<OrganizationUpdateInput, OrganizationUncheckedUpdateInput>
  }

  /**
   * Organization delete
   */
  export type OrganizationDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Organization
     */
    select?: OrganizationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Organization
     */
    omit?: OrganizationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OrganizationInclude<ExtArgs> | null
    /**
     * Filter which Organization to delete.
     */
    where: OrganizationWhereUniqueInput
  }

  /**
   * Organization deleteMany
   */
  export type OrganizationDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Organizations to delete
     */
    where?: OrganizationWhereInput
    /**
     * Limit how many Organizations to delete.
     */
    limit?: number
  }

  /**
   * Organization.apiKeys
   */
  export type Organization$apiKeysArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApiKey
     */
    select?: ApiKeySelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApiKey
     */
    omit?: ApiKeyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApiKeyInclude<ExtArgs> | null
    where?: ApiKeyWhereInput
    orderBy?: ApiKeyOrderByWithRelationInput | ApiKeyOrderByWithRelationInput[]
    cursor?: ApiKeyWhereUniqueInput
    take?: number
    skip?: number
    distinct?: ApiKeyScalarFieldEnum | ApiKeyScalarFieldEnum[]
  }

  /**
   * Organization.carts
   */
  export type Organization$cartsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Cart
     */
    select?: CartSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Cart
     */
    omit?: CartOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CartInclude<ExtArgs> | null
    where?: CartWhereInput
  }

  /**
   * Organization.counterpartyOf
   */
  export type Organization$counterpartyOfArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Counterparty
     */
    select?: CounterpartySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Counterparty
     */
    omit?: CounterpartyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CounterpartyInclude<ExtArgs> | null
    where?: CounterpartyWhereInput
    orderBy?: CounterpartyOrderByWithRelationInput | CounterpartyOrderByWithRelationInput[]
    cursor?: CounterpartyWhereUniqueInput
    take?: number
    skip?: number
    distinct?: CounterpartyScalarFieldEnum | CounterpartyScalarFieldEnum[]
  }

  /**
   * Organization.organizationCounterparties
   */
  export type Organization$organizationCounterpartiesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Counterparty
     */
    select?: CounterpartySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Counterparty
     */
    omit?: CounterpartyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CounterpartyInclude<ExtArgs> | null
    where?: CounterpartyWhereInput
    orderBy?: CounterpartyOrderByWithRelationInput | CounterpartyOrderByWithRelationInput[]
    cursor?: CounterpartyWhereUniqueInput
    take?: number
    skip?: number
    distinct?: CounterpartyScalarFieldEnum | CounterpartyScalarFieldEnum[]
  }

  /**
   * Organization.receivedRequests
   */
  export type Organization$receivedRequestsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CounterpartyRequest
     */
    select?: CounterpartyRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CounterpartyRequest
     */
    omit?: CounterpartyRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CounterpartyRequestInclude<ExtArgs> | null
    where?: CounterpartyRequestWhereInput
    orderBy?: CounterpartyRequestOrderByWithRelationInput | CounterpartyRequestOrderByWithRelationInput[]
    cursor?: CounterpartyRequestWhereUniqueInput
    take?: number
    skip?: number
    distinct?: CounterpartyRequestScalarFieldEnum | CounterpartyRequestScalarFieldEnum[]
  }

  /**
   * Organization.sentRequests
   */
  export type Organization$sentRequestsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CounterpartyRequest
     */
    select?: CounterpartyRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CounterpartyRequest
     */
    omit?: CounterpartyRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CounterpartyRequestInclude<ExtArgs> | null
    where?: CounterpartyRequestWhereInput
    orderBy?: CounterpartyRequestOrderByWithRelationInput | CounterpartyRequestOrderByWithRelationInput[]
    cursor?: CounterpartyRequestWhereUniqueInput
    take?: number
    skip?: number
    distinct?: CounterpartyRequestScalarFieldEnum | CounterpartyRequestScalarFieldEnum[]
  }

  /**
   * Organization.employees
   */
  export type Organization$employeesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Employee
     */
    select?: EmployeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Employee
     */
    omit?: EmployeeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EmployeeInclude<ExtArgs> | null
    where?: EmployeeWhereInput
    orderBy?: EmployeeOrderByWithRelationInput | EmployeeOrderByWithRelationInput[]
    cursor?: EmployeeWhereUniqueInput
    take?: number
    skip?: number
    distinct?: EmployeeScalarFieldEnum | EmployeeScalarFieldEnum[]
  }

  /**
   * Organization.favorites
   */
  export type Organization$favoritesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Favorites
     */
    select?: FavoritesSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Favorites
     */
    omit?: FavoritesOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FavoritesInclude<ExtArgs> | null
    where?: FavoritesWhereInput
    orderBy?: FavoritesOrderByWithRelationInput | FavoritesOrderByWithRelationInput[]
    cursor?: FavoritesWhereUniqueInput
    take?: number
    skip?: number
    distinct?: FavoritesScalarFieldEnum | FavoritesScalarFieldEnum[]
  }

  /**
   * Organization.receivedMessages
   */
  export type Organization$receivedMessagesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Message
     */
    select?: MessageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Message
     */
    omit?: MessageOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MessageInclude<ExtArgs> | null
    where?: MessageWhereInput
    orderBy?: MessageOrderByWithRelationInput | MessageOrderByWithRelationInput[]
    cursor?: MessageWhereUniqueInput
    take?: number
    skip?: number
    distinct?: MessageScalarFieldEnum | MessageScalarFieldEnum[]
  }

  /**
   * Organization.sentMessages
   */
  export type Organization$sentMessagesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Message
     */
    select?: MessageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Message
     */
    omit?: MessageOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MessageInclude<ExtArgs> | null
    where?: MessageWhereInput
    orderBy?: MessageOrderByWithRelationInput | MessageOrderByWithRelationInput[]
    cursor?: MessageWhereUniqueInput
    take?: number
    skip?: number
    distinct?: MessageScalarFieldEnum | MessageScalarFieldEnum[]
  }

  /**
   * Organization.products
   */
  export type Organization$productsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Product
     */
    select?: ProductSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Product
     */
    omit?: ProductOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ProductInclude<ExtArgs> | null
    where?: ProductWhereInput
    orderBy?: ProductOrderByWithRelationInput | ProductOrderByWithRelationInput[]
    cursor?: ProductWhereUniqueInput
    take?: number
    skip?: number
    distinct?: ProductScalarFieldEnum | ProductScalarFieldEnum[]
  }

  /**
   * Organization.services
   */
  export type Organization$servicesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Service
     */
    select?: ServiceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Service
     */
    omit?: ServiceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ServiceInclude<ExtArgs> | null
    where?: ServiceWhereInput
    orderBy?: ServiceOrderByWithRelationInput | ServiceOrderByWithRelationInput[]
    cursor?: ServiceWhereUniqueInput
    take?: number
    skip?: number
    distinct?: ServiceScalarFieldEnum | ServiceScalarFieldEnum[]
  }

  /**
   * Organization.supplies
   */
  export type Organization$suppliesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Supply
     */
    select?: SupplySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Supply
     */
    omit?: SupplyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplyInclude<ExtArgs> | null
    where?: SupplyWhereInput
    orderBy?: SupplyOrderByWithRelationInput | SupplyOrderByWithRelationInput[]
    cursor?: SupplyWhereUniqueInput
    take?: number
    skip?: number
    distinct?: SupplyScalarFieldEnum | SupplyScalarFieldEnum[]
  }

  /**
   * Organization.users
   */
  export type Organization$usersArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the User
     */
    select?: UserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the User
     */
    omit?: UserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserInclude<ExtArgs> | null
    where?: UserWhereInput
    orderBy?: UserOrderByWithRelationInput | UserOrderByWithRelationInput[]
    cursor?: UserWhereUniqueInput
    take?: number
    skip?: number
    distinct?: UserScalarFieldEnum | UserScalarFieldEnum[]
  }

  /**
   * Organization.logistics
   */
  export type Organization$logisticsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Logistics
     */
    select?: LogisticsSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Logistics
     */
    omit?: LogisticsOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: LogisticsInclude<ExtArgs> | null
    where?: LogisticsWhereInput
    orderBy?: LogisticsOrderByWithRelationInput | LogisticsOrderByWithRelationInput[]
    cursor?: LogisticsWhereUniqueInput
    take?: number
    skip?: number
    distinct?: LogisticsScalarFieldEnum | LogisticsScalarFieldEnum[]
  }

  /**
   * Organization.supplyOrders
   */
  export type Organization$supplyOrdersArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplyOrder
     */
    select?: SupplyOrderSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SupplyOrder
     */
    omit?: SupplyOrderOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplyOrderInclude<ExtArgs> | null
    where?: SupplyOrderWhereInput
    orderBy?: SupplyOrderOrderByWithRelationInput | SupplyOrderOrderByWithRelationInput[]
    cursor?: SupplyOrderWhereUniqueInput
    take?: number
    skip?: number
    distinct?: SupplyOrderScalarFieldEnum | SupplyOrderScalarFieldEnum[]
  }

  /**
   * Organization.partnerSupplyOrders
   */
  export type Organization$partnerSupplyOrdersArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplyOrder
     */
    select?: SupplyOrderSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SupplyOrder
     */
    omit?: SupplyOrderOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplyOrderInclude<ExtArgs> | null
    where?: SupplyOrderWhereInput
    orderBy?: SupplyOrderOrderByWithRelationInput | SupplyOrderOrderByWithRelationInput[]
    cursor?: SupplyOrderWhereUniqueInput
    take?: number
    skip?: number
    distinct?: SupplyOrderScalarFieldEnum | SupplyOrderScalarFieldEnum[]
  }

  /**
   * Organization.fulfillmentSupplyOrders
   */
  export type Organization$fulfillmentSupplyOrdersArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplyOrder
     */
    select?: SupplyOrderSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SupplyOrder
     */
    omit?: SupplyOrderOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplyOrderInclude<ExtArgs> | null
    where?: SupplyOrderWhereInput
    orderBy?: SupplyOrderOrderByWithRelationInput | SupplyOrderOrderByWithRelationInput[]
    cursor?: SupplyOrderWhereUniqueInput
    take?: number
    skip?: number
    distinct?: SupplyOrderScalarFieldEnum | SupplyOrderScalarFieldEnum[]
  }

  /**
   * Organization.wildberriesSupplies
   */
  export type Organization$wildberriesSuppliesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WildberriesSupply
     */
    select?: WildberriesSupplySelect<ExtArgs> | null
    /**
     * Omit specific fields from the WildberriesSupply
     */
    omit?: WildberriesSupplyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WildberriesSupplyInclude<ExtArgs> | null
    where?: WildberriesSupplyWhereInput
    orderBy?: WildberriesSupplyOrderByWithRelationInput | WildberriesSupplyOrderByWithRelationInput[]
    cursor?: WildberriesSupplyWhereUniqueInput
    take?: number
    skip?: number
    distinct?: WildberriesSupplyScalarFieldEnum | WildberriesSupplyScalarFieldEnum[]
  }

  /**
   * Organization.supplySuppliers
   */
  export type Organization$supplySuppliersArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplySupplier
     */
    select?: SupplySupplierSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SupplySupplier
     */
    omit?: SupplySupplierOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplySupplierInclude<ExtArgs> | null
    where?: SupplySupplierWhereInput
    orderBy?: SupplySupplierOrderByWithRelationInput | SupplySupplierOrderByWithRelationInput[]
    cursor?: SupplySupplierWhereUniqueInput
    take?: number
    skip?: number
    distinct?: SupplySupplierScalarFieldEnum | SupplySupplierScalarFieldEnum[]
  }

  /**
   * Organization without action
   */
  export type OrganizationDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Organization
     */
    select?: OrganizationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Organization
     */
    omit?: OrganizationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OrganizationInclude<ExtArgs> | null
  }


  /**
   * Model ApiKey
   */

  export type AggregateApiKey = {
    _count: ApiKeyCountAggregateOutputType | null
    _min: ApiKeyMinAggregateOutputType | null
    _max: ApiKeyMaxAggregateOutputType | null
  }

  export type ApiKeyMinAggregateOutputType = {
    id: string | null
    marketplace: $Enums.MarketplaceType | null
    apiKey: string | null
    isActive: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
    organizationId: string | null
  }

  export type ApiKeyMaxAggregateOutputType = {
    id: string | null
    marketplace: $Enums.MarketplaceType | null
    apiKey: string | null
    isActive: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
    organizationId: string | null
  }

  export type ApiKeyCountAggregateOutputType = {
    id: number
    marketplace: number
    apiKey: number
    isActive: number
    createdAt: number
    updatedAt: number
    validationData: number
    organizationId: number
    _all: number
  }


  export type ApiKeyMinAggregateInputType = {
    id?: true
    marketplace?: true
    apiKey?: true
    isActive?: true
    createdAt?: true
    updatedAt?: true
    organizationId?: true
  }

  export type ApiKeyMaxAggregateInputType = {
    id?: true
    marketplace?: true
    apiKey?: true
    isActive?: true
    createdAt?: true
    updatedAt?: true
    organizationId?: true
  }

  export type ApiKeyCountAggregateInputType = {
    id?: true
    marketplace?: true
    apiKey?: true
    isActive?: true
    createdAt?: true
    updatedAt?: true
    validationData?: true
    organizationId?: true
    _all?: true
  }

  export type ApiKeyAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which ApiKey to aggregate.
     */
    where?: ApiKeyWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ApiKeys to fetch.
     */
    orderBy?: ApiKeyOrderByWithRelationInput | ApiKeyOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: ApiKeyWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ApiKeys 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` ApiKeys.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned ApiKeys
    **/
    _count?: true | ApiKeyCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: ApiKeyMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: ApiKeyMaxAggregateInputType
  }

  export type GetApiKeyAggregateType<T extends ApiKeyAggregateArgs> = {
        [P in keyof T & keyof AggregateApiKey]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateApiKey[P]>
      : GetScalarType<T[P], AggregateApiKey[P]>
  }




  export type ApiKeyGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ApiKeyWhereInput
    orderBy?: ApiKeyOrderByWithAggregationInput | ApiKeyOrderByWithAggregationInput[]
    by: ApiKeyScalarFieldEnum[] | ApiKeyScalarFieldEnum
    having?: ApiKeyScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: ApiKeyCountAggregateInputType | true
    _min?: ApiKeyMinAggregateInputType
    _max?: ApiKeyMaxAggregateInputType
  }

  export type ApiKeyGroupByOutputType = {
    id: string
    marketplace: $Enums.MarketplaceType
    apiKey: string
    isActive: boolean
    createdAt: Date
    updatedAt: Date
    validationData: JsonValue | null
    organizationId: string
    _count: ApiKeyCountAggregateOutputType | null
    _min: ApiKeyMinAggregateOutputType | null
    _max: ApiKeyMaxAggregateOutputType | null
  }

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


  export type ApiKeySelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    marketplace?: boolean
    apiKey?: boolean
    isActive?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    validationData?: boolean
    organizationId?: boolean
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["apiKey"]>

  export type ApiKeySelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    marketplace?: boolean
    apiKey?: boolean
    isActive?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    validationData?: boolean
    organizationId?: boolean
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["apiKey"]>

  export type ApiKeySelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    marketplace?: boolean
    apiKey?: boolean
    isActive?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    validationData?: boolean
    organizationId?: boolean
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["apiKey"]>

  export type ApiKeySelectScalar = {
    id?: boolean
    marketplace?: boolean
    apiKey?: boolean
    isActive?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    validationData?: boolean
    organizationId?: boolean
  }

  export type ApiKeyOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "marketplace" | "apiKey" | "isActive" | "createdAt" | "updatedAt" | "validationData" | "organizationId", ExtArgs["result"]["apiKey"]>
  export type ApiKeyInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }
  export type ApiKeyIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }
  export type ApiKeyIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }

  export type $ApiKeyPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "ApiKey"
    objects: {
      organization: Prisma.$OrganizationPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      marketplace: $Enums.MarketplaceType
      apiKey: string
      isActive: boolean
      createdAt: Date
      updatedAt: Date
      validationData: Prisma.JsonValue | null
      organizationId: string
    }, ExtArgs["result"]["apiKey"]>
    composites: {}
  }

  type ApiKeyGetPayload<S extends boolean | null | undefined | ApiKeyDefaultArgs> = $Result.GetResult<Prisma.$ApiKeyPayload, S>

  type ApiKeyCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<ApiKeyFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: ApiKeyCountAggregateInputType | true
    }

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

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

    /**
     * Find the first ApiKey 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 {ApiKeyFindFirstArgs} args - Arguments to find a ApiKey
     * @example
     * // Get one ApiKey
     * const apiKey = await prisma.apiKey.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends ApiKeyFindFirstArgs>(args?: SelectSubset<T, ApiKeyFindFirstArgs<ExtArgs>>): Prisma__ApiKeyClient<$Result.GetResult<Prisma.$ApiKeyPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first ApiKey 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 {ApiKeyFindFirstOrThrowArgs} args - Arguments to find a ApiKey
     * @example
     * // Get one ApiKey
     * const apiKey = await prisma.apiKey.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends ApiKeyFindFirstOrThrowArgs>(args?: SelectSubset<T, ApiKeyFindFirstOrThrowArgs<ExtArgs>>): Prisma__ApiKeyClient<$Result.GetResult<Prisma.$ApiKeyPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more ApiKeys 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 {ApiKeyFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all ApiKeys
     * const apiKeys = await prisma.apiKey.findMany()
     * 
     * // Get first 10 ApiKeys
     * const apiKeys = await prisma.apiKey.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const apiKeyWithIdOnly = await prisma.apiKey.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends ApiKeyFindManyArgs>(args?: SelectSubset<T, ApiKeyFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ApiKeyPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a ApiKey.
     * @param {ApiKeyCreateArgs} args - Arguments to create a ApiKey.
     * @example
     * // Create one ApiKey
     * const ApiKey = await prisma.apiKey.create({
     *   data: {
     *     // ... data to create a ApiKey
     *   }
     * })
     * 
     */
    create<T extends ApiKeyCreateArgs>(args: SelectSubset<T, ApiKeyCreateArgs<ExtArgs>>): Prisma__ApiKeyClient<$Result.GetResult<Prisma.$ApiKeyPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

    /**
     * Create many ApiKeys and returns the data saved in the database.
     * @param {ApiKeyCreateManyAndReturnArgs} args - Arguments to create many ApiKeys.
     * @example
     * // Create many ApiKeys
     * const apiKey = await prisma.apiKey.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many ApiKeys and only return the `id`
     * const apiKeyWithIdOnly = await prisma.apiKey.createManyAndReturn({
     *   select: { id: true },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    createManyAndReturn<T extends ApiKeyCreateManyAndReturnArgs>(args?: SelectSubset<T, ApiKeyCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ApiKeyPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a ApiKey.
     * @param {ApiKeyDeleteArgs} args - Arguments to delete one ApiKey.
     * @example
     * // Delete one ApiKey
     * const ApiKey = await prisma.apiKey.delete({
     *   where: {
     *     // ... filter to delete one ApiKey
     *   }
     * })
     * 
     */
    delete<T extends ApiKeyDeleteArgs>(args: SelectSubset<T, ApiKeyDeleteArgs<ExtArgs>>): Prisma__ApiKeyClient<$Result.GetResult<Prisma.$ApiKeyPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one ApiKey.
     * @param {ApiKeyUpdateArgs} args - Arguments to update one ApiKey.
     * @example
     * // Update one ApiKey
     * const apiKey = await prisma.apiKey.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends ApiKeyUpdateArgs>(args: SelectSubset<T, ApiKeyUpdateArgs<ExtArgs>>): Prisma__ApiKeyClient<$Result.GetResult<Prisma.$ApiKeyPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

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

    /**
     * Update zero or more ApiKeys and returns the data updated in the database.
     * @param {ApiKeyUpdateManyAndReturnArgs} args - Arguments to update many ApiKeys.
     * @example
     * // Update many ApiKeys
     * const apiKey = await prisma.apiKey.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more ApiKeys and only return the `id`
     * const apiKeyWithIdOnly = await prisma.apiKey.updateManyAndReturn({
     *   select: { id: true },
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    updateManyAndReturn<T extends ApiKeyUpdateManyAndReturnArgs>(args: SelectSubset<T, ApiKeyUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ApiKeyPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

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


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

    /**
     * Allows you to perform aggregations operations on a ApiKey.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ApiKeyAggregateArgs} 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 ApiKeyAggregateArgs>(args: Subset<T, ApiKeyAggregateArgs>): Prisma.PrismaPromise<GetApiKeyAggregateType<T>>

    /**
     * Group by ApiKey.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ApiKeyGroupByArgs} 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 ApiKeyGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: ApiKeyGroupByArgs['orderBy'] }
        : { orderBy?: ApiKeyGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends 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 Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends 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 Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends 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 True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, ApiKeyGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetApiKeyGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the ApiKey model
   */
  readonly fields: ApiKeyFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for ApiKey.
   * 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__ApiKeyClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    organization<T extends OrganizationDefaultArgs<ExtArgs> = {}>(args?: Subset<T, OrganizationDefaultArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * 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): $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): $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): $Utils.JsPromise<T>
  }




  /**
   * Fields of the ApiKey model
   */
  interface ApiKeyFieldRefs {
    readonly id: FieldRef<"ApiKey", 'String'>
    readonly marketplace: FieldRef<"ApiKey", 'MarketplaceType'>
    readonly apiKey: FieldRef<"ApiKey", 'String'>
    readonly isActive: FieldRef<"ApiKey", 'Boolean'>
    readonly createdAt: FieldRef<"ApiKey", 'DateTime'>
    readonly updatedAt: FieldRef<"ApiKey", 'DateTime'>
    readonly validationData: FieldRef<"ApiKey", 'Json'>
    readonly organizationId: FieldRef<"ApiKey", 'String'>
  }
    

  // Custom InputTypes
  /**
   * ApiKey findUnique
   */
  export type ApiKeyFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApiKey
     */
    select?: ApiKeySelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApiKey
     */
    omit?: ApiKeyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApiKeyInclude<ExtArgs> | null
    /**
     * Filter, which ApiKey to fetch.
     */
    where: ApiKeyWhereUniqueInput
  }

  /**
   * ApiKey findUniqueOrThrow
   */
  export type ApiKeyFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApiKey
     */
    select?: ApiKeySelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApiKey
     */
    omit?: ApiKeyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApiKeyInclude<ExtArgs> | null
    /**
     * Filter, which ApiKey to fetch.
     */
    where: ApiKeyWhereUniqueInput
  }

  /**
   * ApiKey findFirst
   */
  export type ApiKeyFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApiKey
     */
    select?: ApiKeySelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApiKey
     */
    omit?: ApiKeyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApiKeyInclude<ExtArgs> | null
    /**
     * Filter, which ApiKey to fetch.
     */
    where?: ApiKeyWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ApiKeys to fetch.
     */
    orderBy?: ApiKeyOrderByWithRelationInput | ApiKeyOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for ApiKeys.
     */
    cursor?: ApiKeyWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ApiKeys 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` ApiKeys.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of ApiKeys.
     */
    distinct?: ApiKeyScalarFieldEnum | ApiKeyScalarFieldEnum[]
  }

  /**
   * ApiKey findFirstOrThrow
   */
  export type ApiKeyFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApiKey
     */
    select?: ApiKeySelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApiKey
     */
    omit?: ApiKeyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApiKeyInclude<ExtArgs> | null
    /**
     * Filter, which ApiKey to fetch.
     */
    where?: ApiKeyWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ApiKeys to fetch.
     */
    orderBy?: ApiKeyOrderByWithRelationInput | ApiKeyOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for ApiKeys.
     */
    cursor?: ApiKeyWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ApiKeys 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` ApiKeys.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of ApiKeys.
     */
    distinct?: ApiKeyScalarFieldEnum | ApiKeyScalarFieldEnum[]
  }

  /**
   * ApiKey findMany
   */
  export type ApiKeyFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApiKey
     */
    select?: ApiKeySelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApiKey
     */
    omit?: ApiKeyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApiKeyInclude<ExtArgs> | null
    /**
     * Filter, which ApiKeys to fetch.
     */
    where?: ApiKeyWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ApiKeys to fetch.
     */
    orderBy?: ApiKeyOrderByWithRelationInput | ApiKeyOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing ApiKeys.
     */
    cursor?: ApiKeyWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ApiKeys 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` ApiKeys.
     */
    skip?: number
    distinct?: ApiKeyScalarFieldEnum | ApiKeyScalarFieldEnum[]
  }

  /**
   * ApiKey create
   */
  export type ApiKeyCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApiKey
     */
    select?: ApiKeySelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApiKey
     */
    omit?: ApiKeyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApiKeyInclude<ExtArgs> | null
    /**
     * The data needed to create a ApiKey.
     */
    data: XOR<ApiKeyCreateInput, ApiKeyUncheckedCreateInput>
  }

  /**
   * ApiKey createMany
   */
  export type ApiKeyCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many ApiKeys.
     */
    data: ApiKeyCreateManyInput | ApiKeyCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * ApiKey createManyAndReturn
   */
  export type ApiKeyCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApiKey
     */
    select?: ApiKeySelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the ApiKey
     */
    omit?: ApiKeyOmit<ExtArgs> | null
    /**
     * The data used to create many ApiKeys.
     */
    data: ApiKeyCreateManyInput | ApiKeyCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApiKeyIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * ApiKey update
   */
  export type ApiKeyUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApiKey
     */
    select?: ApiKeySelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApiKey
     */
    omit?: ApiKeyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApiKeyInclude<ExtArgs> | null
    /**
     * The data needed to update a ApiKey.
     */
    data: XOR<ApiKeyUpdateInput, ApiKeyUncheckedUpdateInput>
    /**
     * Choose, which ApiKey to update.
     */
    where: ApiKeyWhereUniqueInput
  }

  /**
   * ApiKey updateMany
   */
  export type ApiKeyUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update ApiKeys.
     */
    data: XOR<ApiKeyUpdateManyMutationInput, ApiKeyUncheckedUpdateManyInput>
    /**
     * Filter which ApiKeys to update
     */
    where?: ApiKeyWhereInput
    /**
     * Limit how many ApiKeys to update.
     */
    limit?: number
  }

  /**
   * ApiKey updateManyAndReturn
   */
  export type ApiKeyUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApiKey
     */
    select?: ApiKeySelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the ApiKey
     */
    omit?: ApiKeyOmit<ExtArgs> | null
    /**
     * The data used to update ApiKeys.
     */
    data: XOR<ApiKeyUpdateManyMutationInput, ApiKeyUncheckedUpdateManyInput>
    /**
     * Filter which ApiKeys to update
     */
    where?: ApiKeyWhereInput
    /**
     * Limit how many ApiKeys to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApiKeyIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * ApiKey upsert
   */
  export type ApiKeyUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApiKey
     */
    select?: ApiKeySelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApiKey
     */
    omit?: ApiKeyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApiKeyInclude<ExtArgs> | null
    /**
     * The filter to search for the ApiKey to update in case it exists.
     */
    where: ApiKeyWhereUniqueInput
    /**
     * In case the ApiKey found by the `where` argument doesn't exist, create a new ApiKey with this data.
     */
    create: XOR<ApiKeyCreateInput, ApiKeyUncheckedCreateInput>
    /**
     * In case the ApiKey was found with the provided `where` argument, update it with this data.
     */
    update: XOR<ApiKeyUpdateInput, ApiKeyUncheckedUpdateInput>
  }

  /**
   * ApiKey delete
   */
  export type ApiKeyDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApiKey
     */
    select?: ApiKeySelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApiKey
     */
    omit?: ApiKeyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApiKeyInclude<ExtArgs> | null
    /**
     * Filter which ApiKey to delete.
     */
    where: ApiKeyWhereUniqueInput
  }

  /**
   * ApiKey deleteMany
   */
  export type ApiKeyDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which ApiKeys to delete
     */
    where?: ApiKeyWhereInput
    /**
     * Limit how many ApiKeys to delete.
     */
    limit?: number
  }

  /**
   * ApiKey without action
   */
  export type ApiKeyDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApiKey
     */
    select?: ApiKeySelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApiKey
     */
    omit?: ApiKeyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApiKeyInclude<ExtArgs> | null
  }


  /**
   * Model CounterpartyRequest
   */

  export type AggregateCounterpartyRequest = {
    _count: CounterpartyRequestCountAggregateOutputType | null
    _min: CounterpartyRequestMinAggregateOutputType | null
    _max: CounterpartyRequestMaxAggregateOutputType | null
  }

  export type CounterpartyRequestMinAggregateOutputType = {
    id: string | null
    status: $Enums.CounterpartyRequestStatus | null
    createdAt: Date | null
    updatedAt: Date | null
    senderId: string | null
    receiverId: string | null
    message: string | null
  }

  export type CounterpartyRequestMaxAggregateOutputType = {
    id: string | null
    status: $Enums.CounterpartyRequestStatus | null
    createdAt: Date | null
    updatedAt: Date | null
    senderId: string | null
    receiverId: string | null
    message: string | null
  }

  export type CounterpartyRequestCountAggregateOutputType = {
    id: number
    status: number
    createdAt: number
    updatedAt: number
    senderId: number
    receiverId: number
    message: number
    _all: number
  }


  export type CounterpartyRequestMinAggregateInputType = {
    id?: true
    status?: true
    createdAt?: true
    updatedAt?: true
    senderId?: true
    receiverId?: true
    message?: true
  }

  export type CounterpartyRequestMaxAggregateInputType = {
    id?: true
    status?: true
    createdAt?: true
    updatedAt?: true
    senderId?: true
    receiverId?: true
    message?: true
  }

  export type CounterpartyRequestCountAggregateInputType = {
    id?: true
    status?: true
    createdAt?: true
    updatedAt?: true
    senderId?: true
    receiverId?: true
    message?: true
    _all?: true
  }

  export type CounterpartyRequestAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which CounterpartyRequest to aggregate.
     */
    where?: CounterpartyRequestWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of CounterpartyRequests to fetch.
     */
    orderBy?: CounterpartyRequestOrderByWithRelationInput | CounterpartyRequestOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: CounterpartyRequestWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` CounterpartyRequests 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` CounterpartyRequests.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned CounterpartyRequests
    **/
    _count?: true | CounterpartyRequestCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: CounterpartyRequestMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: CounterpartyRequestMaxAggregateInputType
  }

  export type GetCounterpartyRequestAggregateType<T extends CounterpartyRequestAggregateArgs> = {
        [P in keyof T & keyof AggregateCounterpartyRequest]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateCounterpartyRequest[P]>
      : GetScalarType<T[P], AggregateCounterpartyRequest[P]>
  }




  export type CounterpartyRequestGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: CounterpartyRequestWhereInput
    orderBy?: CounterpartyRequestOrderByWithAggregationInput | CounterpartyRequestOrderByWithAggregationInput[]
    by: CounterpartyRequestScalarFieldEnum[] | CounterpartyRequestScalarFieldEnum
    having?: CounterpartyRequestScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: CounterpartyRequestCountAggregateInputType | true
    _min?: CounterpartyRequestMinAggregateInputType
    _max?: CounterpartyRequestMaxAggregateInputType
  }

  export type CounterpartyRequestGroupByOutputType = {
    id: string
    status: $Enums.CounterpartyRequestStatus
    createdAt: Date
    updatedAt: Date
    senderId: string
    receiverId: string
    message: string | null
    _count: CounterpartyRequestCountAggregateOutputType | null
    _min: CounterpartyRequestMinAggregateOutputType | null
    _max: CounterpartyRequestMaxAggregateOutputType | null
  }

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


  export type CounterpartyRequestSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    status?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    senderId?: boolean
    receiverId?: boolean
    message?: boolean
    receiver?: boolean | OrganizationDefaultArgs<ExtArgs>
    sender?: boolean | OrganizationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["counterpartyRequest"]>

  export type CounterpartyRequestSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    status?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    senderId?: boolean
    receiverId?: boolean
    message?: boolean
    receiver?: boolean | OrganizationDefaultArgs<ExtArgs>
    sender?: boolean | OrganizationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["counterpartyRequest"]>

  export type CounterpartyRequestSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    status?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    senderId?: boolean
    receiverId?: boolean
    message?: boolean
    receiver?: boolean | OrganizationDefaultArgs<ExtArgs>
    sender?: boolean | OrganizationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["counterpartyRequest"]>

  export type CounterpartyRequestSelectScalar = {
    id?: boolean
    status?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    senderId?: boolean
    receiverId?: boolean
    message?: boolean
  }

  export type CounterpartyRequestOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "status" | "createdAt" | "updatedAt" | "senderId" | "receiverId" | "message", ExtArgs["result"]["counterpartyRequest"]>
  export type CounterpartyRequestInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    receiver?: boolean | OrganizationDefaultArgs<ExtArgs>
    sender?: boolean | OrganizationDefaultArgs<ExtArgs>
  }
  export type CounterpartyRequestIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    receiver?: boolean | OrganizationDefaultArgs<ExtArgs>
    sender?: boolean | OrganizationDefaultArgs<ExtArgs>
  }
  export type CounterpartyRequestIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    receiver?: boolean | OrganizationDefaultArgs<ExtArgs>
    sender?: boolean | OrganizationDefaultArgs<ExtArgs>
  }

  export type $CounterpartyRequestPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "CounterpartyRequest"
    objects: {
      receiver: Prisma.$OrganizationPayload<ExtArgs>
      sender: Prisma.$OrganizationPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      status: $Enums.CounterpartyRequestStatus
      createdAt: Date
      updatedAt: Date
      senderId: string
      receiverId: string
      message: string | null
    }, ExtArgs["result"]["counterpartyRequest"]>
    composites: {}
  }

  type CounterpartyRequestGetPayload<S extends boolean | null | undefined | CounterpartyRequestDefaultArgs> = $Result.GetResult<Prisma.$CounterpartyRequestPayload, S>

  type CounterpartyRequestCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<CounterpartyRequestFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: CounterpartyRequestCountAggregateInputType | true
    }

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

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

    /**
     * Find the first CounterpartyRequest 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 {CounterpartyRequestFindFirstArgs} args - Arguments to find a CounterpartyRequest
     * @example
     * // Get one CounterpartyRequest
     * const counterpartyRequest = await prisma.counterpartyRequest.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends CounterpartyRequestFindFirstArgs>(args?: SelectSubset<T, CounterpartyRequestFindFirstArgs<ExtArgs>>): Prisma__CounterpartyRequestClient<$Result.GetResult<Prisma.$CounterpartyRequestPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first CounterpartyRequest 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 {CounterpartyRequestFindFirstOrThrowArgs} args - Arguments to find a CounterpartyRequest
     * @example
     * // Get one CounterpartyRequest
     * const counterpartyRequest = await prisma.counterpartyRequest.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends CounterpartyRequestFindFirstOrThrowArgs>(args?: SelectSubset<T, CounterpartyRequestFindFirstOrThrowArgs<ExtArgs>>): Prisma__CounterpartyRequestClient<$Result.GetResult<Prisma.$CounterpartyRequestPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more CounterpartyRequests 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 {CounterpartyRequestFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all CounterpartyRequests
     * const counterpartyRequests = await prisma.counterpartyRequest.findMany()
     * 
     * // Get first 10 CounterpartyRequests
     * const counterpartyRequests = await prisma.counterpartyRequest.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const counterpartyRequestWithIdOnly = await prisma.counterpartyRequest.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends CounterpartyRequestFindManyArgs>(args?: SelectSubset<T, CounterpartyRequestFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$CounterpartyRequestPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a CounterpartyRequest.
     * @param {CounterpartyRequestCreateArgs} args - Arguments to create a CounterpartyRequest.
     * @example
     * // Create one CounterpartyRequest
     * const CounterpartyRequest = await prisma.counterpartyRequest.create({
     *   data: {
     *     // ... data to create a CounterpartyRequest
     *   }
     * })
     * 
     */
    create<T extends CounterpartyRequestCreateArgs>(args: SelectSubset<T, CounterpartyRequestCreateArgs<ExtArgs>>): Prisma__CounterpartyRequestClient<$Result.GetResult<Prisma.$CounterpartyRequestPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

    /**
     * Create many CounterpartyRequests and returns the data saved in the database.
     * @param {CounterpartyRequestCreateManyAndReturnArgs} args - Arguments to create many CounterpartyRequests.
     * @example
     * // Create many CounterpartyRequests
     * const counterpartyRequest = await prisma.counterpartyRequest.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many CounterpartyRequests and only return the `id`
     * const counterpartyRequestWithIdOnly = await prisma.counterpartyRequest.createManyAndReturn({
     *   select: { id: true },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    createManyAndReturn<T extends CounterpartyRequestCreateManyAndReturnArgs>(args?: SelectSubset<T, CounterpartyRequestCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$CounterpartyRequestPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a CounterpartyRequest.
     * @param {CounterpartyRequestDeleteArgs} args - Arguments to delete one CounterpartyRequest.
     * @example
     * // Delete one CounterpartyRequest
     * const CounterpartyRequest = await prisma.counterpartyRequest.delete({
     *   where: {
     *     // ... filter to delete one CounterpartyRequest
     *   }
     * })
     * 
     */
    delete<T extends CounterpartyRequestDeleteArgs>(args: SelectSubset<T, CounterpartyRequestDeleteArgs<ExtArgs>>): Prisma__CounterpartyRequestClient<$Result.GetResult<Prisma.$CounterpartyRequestPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one CounterpartyRequest.
     * @param {CounterpartyRequestUpdateArgs} args - Arguments to update one CounterpartyRequest.
     * @example
     * // Update one CounterpartyRequest
     * const counterpartyRequest = await prisma.counterpartyRequest.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends CounterpartyRequestUpdateArgs>(args: SelectSubset<T, CounterpartyRequestUpdateArgs<ExtArgs>>): Prisma__CounterpartyRequestClient<$Result.GetResult<Prisma.$CounterpartyRequestPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

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

    /**
     * Update zero or more CounterpartyRequests and returns the data updated in the database.
     * @param {CounterpartyRequestUpdateManyAndReturnArgs} args - Arguments to update many CounterpartyRequests.
     * @example
     * // Update many CounterpartyRequests
     * const counterpartyRequest = await prisma.counterpartyRequest.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more CounterpartyRequests and only return the `id`
     * const counterpartyRequestWithIdOnly = await prisma.counterpartyRequest.updateManyAndReturn({
     *   select: { id: true },
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    updateManyAndReturn<T extends CounterpartyRequestUpdateManyAndReturnArgs>(args: SelectSubset<T, CounterpartyRequestUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$CounterpartyRequestPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

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


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

    /**
     * Allows you to perform aggregations operations on a CounterpartyRequest.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {CounterpartyRequestAggregateArgs} 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 CounterpartyRequestAggregateArgs>(args: Subset<T, CounterpartyRequestAggregateArgs>): Prisma.PrismaPromise<GetCounterpartyRequestAggregateType<T>>

    /**
     * Group by CounterpartyRequest.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {CounterpartyRequestGroupByArgs} 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 CounterpartyRequestGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: CounterpartyRequestGroupByArgs['orderBy'] }
        : { orderBy?: CounterpartyRequestGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends 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 Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends 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 Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends 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 True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, CounterpartyRequestGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetCounterpartyRequestGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the CounterpartyRequest model
   */
  readonly fields: CounterpartyRequestFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for CounterpartyRequest.
   * 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__CounterpartyRequestClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    receiver<T extends OrganizationDefaultArgs<ExtArgs> = {}>(args?: Subset<T, OrganizationDefaultArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    sender<T extends OrganizationDefaultArgs<ExtArgs> = {}>(args?: Subset<T, OrganizationDefaultArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * 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): $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): $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): $Utils.JsPromise<T>
  }




  /**
   * Fields of the CounterpartyRequest model
   */
  interface CounterpartyRequestFieldRefs {
    readonly id: FieldRef<"CounterpartyRequest", 'String'>
    readonly status: FieldRef<"CounterpartyRequest", 'CounterpartyRequestStatus'>
    readonly createdAt: FieldRef<"CounterpartyRequest", 'DateTime'>
    readonly updatedAt: FieldRef<"CounterpartyRequest", 'DateTime'>
    readonly senderId: FieldRef<"CounterpartyRequest", 'String'>
    readonly receiverId: FieldRef<"CounterpartyRequest", 'String'>
    readonly message: FieldRef<"CounterpartyRequest", 'String'>
  }
    

  // Custom InputTypes
  /**
   * CounterpartyRequest findUnique
   */
  export type CounterpartyRequestFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CounterpartyRequest
     */
    select?: CounterpartyRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CounterpartyRequest
     */
    omit?: CounterpartyRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CounterpartyRequestInclude<ExtArgs> | null
    /**
     * Filter, which CounterpartyRequest to fetch.
     */
    where: CounterpartyRequestWhereUniqueInput
  }

  /**
   * CounterpartyRequest findUniqueOrThrow
   */
  export type CounterpartyRequestFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CounterpartyRequest
     */
    select?: CounterpartyRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CounterpartyRequest
     */
    omit?: CounterpartyRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CounterpartyRequestInclude<ExtArgs> | null
    /**
     * Filter, which CounterpartyRequest to fetch.
     */
    where: CounterpartyRequestWhereUniqueInput
  }

  /**
   * CounterpartyRequest findFirst
   */
  export type CounterpartyRequestFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CounterpartyRequest
     */
    select?: CounterpartyRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CounterpartyRequest
     */
    omit?: CounterpartyRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CounterpartyRequestInclude<ExtArgs> | null
    /**
     * Filter, which CounterpartyRequest to fetch.
     */
    where?: CounterpartyRequestWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of CounterpartyRequests to fetch.
     */
    orderBy?: CounterpartyRequestOrderByWithRelationInput | CounterpartyRequestOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for CounterpartyRequests.
     */
    cursor?: CounterpartyRequestWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` CounterpartyRequests 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` CounterpartyRequests.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of CounterpartyRequests.
     */
    distinct?: CounterpartyRequestScalarFieldEnum | CounterpartyRequestScalarFieldEnum[]
  }

  /**
   * CounterpartyRequest findFirstOrThrow
   */
  export type CounterpartyRequestFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CounterpartyRequest
     */
    select?: CounterpartyRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CounterpartyRequest
     */
    omit?: CounterpartyRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CounterpartyRequestInclude<ExtArgs> | null
    /**
     * Filter, which CounterpartyRequest to fetch.
     */
    where?: CounterpartyRequestWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of CounterpartyRequests to fetch.
     */
    orderBy?: CounterpartyRequestOrderByWithRelationInput | CounterpartyRequestOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for CounterpartyRequests.
     */
    cursor?: CounterpartyRequestWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` CounterpartyRequests 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` CounterpartyRequests.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of CounterpartyRequests.
     */
    distinct?: CounterpartyRequestScalarFieldEnum | CounterpartyRequestScalarFieldEnum[]
  }

  /**
   * CounterpartyRequest findMany
   */
  export type CounterpartyRequestFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CounterpartyRequest
     */
    select?: CounterpartyRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CounterpartyRequest
     */
    omit?: CounterpartyRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CounterpartyRequestInclude<ExtArgs> | null
    /**
     * Filter, which CounterpartyRequests to fetch.
     */
    where?: CounterpartyRequestWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of CounterpartyRequests to fetch.
     */
    orderBy?: CounterpartyRequestOrderByWithRelationInput | CounterpartyRequestOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing CounterpartyRequests.
     */
    cursor?: CounterpartyRequestWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` CounterpartyRequests 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` CounterpartyRequests.
     */
    skip?: number
    distinct?: CounterpartyRequestScalarFieldEnum | CounterpartyRequestScalarFieldEnum[]
  }

  /**
   * CounterpartyRequest create
   */
  export type CounterpartyRequestCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CounterpartyRequest
     */
    select?: CounterpartyRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CounterpartyRequest
     */
    omit?: CounterpartyRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CounterpartyRequestInclude<ExtArgs> | null
    /**
     * The data needed to create a CounterpartyRequest.
     */
    data: XOR<CounterpartyRequestCreateInput, CounterpartyRequestUncheckedCreateInput>
  }

  /**
   * CounterpartyRequest createMany
   */
  export type CounterpartyRequestCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many CounterpartyRequests.
     */
    data: CounterpartyRequestCreateManyInput | CounterpartyRequestCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * CounterpartyRequest createManyAndReturn
   */
  export type CounterpartyRequestCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CounterpartyRequest
     */
    select?: CounterpartyRequestSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the CounterpartyRequest
     */
    omit?: CounterpartyRequestOmit<ExtArgs> | null
    /**
     * The data used to create many CounterpartyRequests.
     */
    data: CounterpartyRequestCreateManyInput | CounterpartyRequestCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CounterpartyRequestIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * CounterpartyRequest update
   */
  export type CounterpartyRequestUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CounterpartyRequest
     */
    select?: CounterpartyRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CounterpartyRequest
     */
    omit?: CounterpartyRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CounterpartyRequestInclude<ExtArgs> | null
    /**
     * The data needed to update a CounterpartyRequest.
     */
    data: XOR<CounterpartyRequestUpdateInput, CounterpartyRequestUncheckedUpdateInput>
    /**
     * Choose, which CounterpartyRequest to update.
     */
    where: CounterpartyRequestWhereUniqueInput
  }

  /**
   * CounterpartyRequest updateMany
   */
  export type CounterpartyRequestUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update CounterpartyRequests.
     */
    data: XOR<CounterpartyRequestUpdateManyMutationInput, CounterpartyRequestUncheckedUpdateManyInput>
    /**
     * Filter which CounterpartyRequests to update
     */
    where?: CounterpartyRequestWhereInput
    /**
     * Limit how many CounterpartyRequests to update.
     */
    limit?: number
  }

  /**
   * CounterpartyRequest updateManyAndReturn
   */
  export type CounterpartyRequestUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CounterpartyRequest
     */
    select?: CounterpartyRequestSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the CounterpartyRequest
     */
    omit?: CounterpartyRequestOmit<ExtArgs> | null
    /**
     * The data used to update CounterpartyRequests.
     */
    data: XOR<CounterpartyRequestUpdateManyMutationInput, CounterpartyRequestUncheckedUpdateManyInput>
    /**
     * Filter which CounterpartyRequests to update
     */
    where?: CounterpartyRequestWhereInput
    /**
     * Limit how many CounterpartyRequests to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CounterpartyRequestIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * CounterpartyRequest upsert
   */
  export type CounterpartyRequestUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CounterpartyRequest
     */
    select?: CounterpartyRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CounterpartyRequest
     */
    omit?: CounterpartyRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CounterpartyRequestInclude<ExtArgs> | null
    /**
     * The filter to search for the CounterpartyRequest to update in case it exists.
     */
    where: CounterpartyRequestWhereUniqueInput
    /**
     * In case the CounterpartyRequest found by the `where` argument doesn't exist, create a new CounterpartyRequest with this data.
     */
    create: XOR<CounterpartyRequestCreateInput, CounterpartyRequestUncheckedCreateInput>
    /**
     * In case the CounterpartyRequest was found with the provided `where` argument, update it with this data.
     */
    update: XOR<CounterpartyRequestUpdateInput, CounterpartyRequestUncheckedUpdateInput>
  }

  /**
   * CounterpartyRequest delete
   */
  export type CounterpartyRequestDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CounterpartyRequest
     */
    select?: CounterpartyRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CounterpartyRequest
     */
    omit?: CounterpartyRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CounterpartyRequestInclude<ExtArgs> | null
    /**
     * Filter which CounterpartyRequest to delete.
     */
    where: CounterpartyRequestWhereUniqueInput
  }

  /**
   * CounterpartyRequest deleteMany
   */
  export type CounterpartyRequestDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which CounterpartyRequests to delete
     */
    where?: CounterpartyRequestWhereInput
    /**
     * Limit how many CounterpartyRequests to delete.
     */
    limit?: number
  }

  /**
   * CounterpartyRequest without action
   */
  export type CounterpartyRequestDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CounterpartyRequest
     */
    select?: CounterpartyRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CounterpartyRequest
     */
    omit?: CounterpartyRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CounterpartyRequestInclude<ExtArgs> | null
  }


  /**
   * Model Counterparty
   */

  export type AggregateCounterparty = {
    _count: CounterpartyCountAggregateOutputType | null
    _min: CounterpartyMinAggregateOutputType | null
    _max: CounterpartyMaxAggregateOutputType | null
  }

  export type CounterpartyMinAggregateOutputType = {
    id: string | null
    createdAt: Date | null
    organizationId: string | null
    counterpartyId: string | null
  }

  export type CounterpartyMaxAggregateOutputType = {
    id: string | null
    createdAt: Date | null
    organizationId: string | null
    counterpartyId: string | null
  }

  export type CounterpartyCountAggregateOutputType = {
    id: number
    createdAt: number
    organizationId: number
    counterpartyId: number
    _all: number
  }


  export type CounterpartyMinAggregateInputType = {
    id?: true
    createdAt?: true
    organizationId?: true
    counterpartyId?: true
  }

  export type CounterpartyMaxAggregateInputType = {
    id?: true
    createdAt?: true
    organizationId?: true
    counterpartyId?: true
  }

  export type CounterpartyCountAggregateInputType = {
    id?: true
    createdAt?: true
    organizationId?: true
    counterpartyId?: true
    _all?: true
  }

  export type CounterpartyAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Counterparty to aggregate.
     */
    where?: CounterpartyWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Counterparties to fetch.
     */
    orderBy?: CounterpartyOrderByWithRelationInput | CounterpartyOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: CounterpartyWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Counterparties 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` Counterparties.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned Counterparties
    **/
    _count?: true | CounterpartyCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: CounterpartyMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: CounterpartyMaxAggregateInputType
  }

  export type GetCounterpartyAggregateType<T extends CounterpartyAggregateArgs> = {
        [P in keyof T & keyof AggregateCounterparty]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateCounterparty[P]>
      : GetScalarType<T[P], AggregateCounterparty[P]>
  }




  export type CounterpartyGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: CounterpartyWhereInput
    orderBy?: CounterpartyOrderByWithAggregationInput | CounterpartyOrderByWithAggregationInput[]
    by: CounterpartyScalarFieldEnum[] | CounterpartyScalarFieldEnum
    having?: CounterpartyScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: CounterpartyCountAggregateInputType | true
    _min?: CounterpartyMinAggregateInputType
    _max?: CounterpartyMaxAggregateInputType
  }

  export type CounterpartyGroupByOutputType = {
    id: string
    createdAt: Date
    organizationId: string
    counterpartyId: string
    _count: CounterpartyCountAggregateOutputType | null
    _min: CounterpartyMinAggregateOutputType | null
    _max: CounterpartyMaxAggregateOutputType | null
  }

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


  export type CounterpartySelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    createdAt?: boolean
    organizationId?: boolean
    counterpartyId?: boolean
    counterparty?: boolean | OrganizationDefaultArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["counterparty"]>

  export type CounterpartySelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    createdAt?: boolean
    organizationId?: boolean
    counterpartyId?: boolean
    counterparty?: boolean | OrganizationDefaultArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["counterparty"]>

  export type CounterpartySelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    createdAt?: boolean
    organizationId?: boolean
    counterpartyId?: boolean
    counterparty?: boolean | OrganizationDefaultArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["counterparty"]>

  export type CounterpartySelectScalar = {
    id?: boolean
    createdAt?: boolean
    organizationId?: boolean
    counterpartyId?: boolean
  }

  export type CounterpartyOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "createdAt" | "organizationId" | "counterpartyId", ExtArgs["result"]["counterparty"]>
  export type CounterpartyInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    counterparty?: boolean | OrganizationDefaultArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }
  export type CounterpartyIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    counterparty?: boolean | OrganizationDefaultArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }
  export type CounterpartyIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    counterparty?: boolean | OrganizationDefaultArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }

  export type $CounterpartyPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "Counterparty"
    objects: {
      counterparty: Prisma.$OrganizationPayload<ExtArgs>
      organization: Prisma.$OrganizationPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      createdAt: Date
      organizationId: string
      counterpartyId: string
    }, ExtArgs["result"]["counterparty"]>
    composites: {}
  }

  type CounterpartyGetPayload<S extends boolean | null | undefined | CounterpartyDefaultArgs> = $Result.GetResult<Prisma.$CounterpartyPayload, S>

  type CounterpartyCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<CounterpartyFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: CounterpartyCountAggregateInputType | true
    }

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

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

    /**
     * Find the first Counterparty 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 {CounterpartyFindFirstArgs} args - Arguments to find a Counterparty
     * @example
     * // Get one Counterparty
     * const counterparty = await prisma.counterparty.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends CounterpartyFindFirstArgs>(args?: SelectSubset<T, CounterpartyFindFirstArgs<ExtArgs>>): Prisma__CounterpartyClient<$Result.GetResult<Prisma.$CounterpartyPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Counterparty 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 {CounterpartyFindFirstOrThrowArgs} args - Arguments to find a Counterparty
     * @example
     * // Get one Counterparty
     * const counterparty = await prisma.counterparty.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends CounterpartyFindFirstOrThrowArgs>(args?: SelectSubset<T, CounterpartyFindFirstOrThrowArgs<ExtArgs>>): Prisma__CounterpartyClient<$Result.GetResult<Prisma.$CounterpartyPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more Counterparties 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 {CounterpartyFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all Counterparties
     * const counterparties = await prisma.counterparty.findMany()
     * 
     * // Get first 10 Counterparties
     * const counterparties = await prisma.counterparty.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const counterpartyWithIdOnly = await prisma.counterparty.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends CounterpartyFindManyArgs>(args?: SelectSubset<T, CounterpartyFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$CounterpartyPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a Counterparty.
     * @param {CounterpartyCreateArgs} args - Arguments to create a Counterparty.
     * @example
     * // Create one Counterparty
     * const Counterparty = await prisma.counterparty.create({
     *   data: {
     *     // ... data to create a Counterparty
     *   }
     * })
     * 
     */
    create<T extends CounterpartyCreateArgs>(args: SelectSubset<T, CounterpartyCreateArgs<ExtArgs>>): Prisma__CounterpartyClient<$Result.GetResult<Prisma.$CounterpartyPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

    /**
     * Create many Counterparties and returns the data saved in the database.
     * @param {CounterpartyCreateManyAndReturnArgs} args - Arguments to create many Counterparties.
     * @example
     * // Create many Counterparties
     * const counterparty = await prisma.counterparty.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many Counterparties and only return the `id`
     * const counterpartyWithIdOnly = await prisma.counterparty.createManyAndReturn({
     *   select: { id: true },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    createManyAndReturn<T extends CounterpartyCreateManyAndReturnArgs>(args?: SelectSubset<T, CounterpartyCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$CounterpartyPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a Counterparty.
     * @param {CounterpartyDeleteArgs} args - Arguments to delete one Counterparty.
     * @example
     * // Delete one Counterparty
     * const Counterparty = await prisma.counterparty.delete({
     *   where: {
     *     // ... filter to delete one Counterparty
     *   }
     * })
     * 
     */
    delete<T extends CounterpartyDeleteArgs>(args: SelectSubset<T, CounterpartyDeleteArgs<ExtArgs>>): Prisma__CounterpartyClient<$Result.GetResult<Prisma.$CounterpartyPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one Counterparty.
     * @param {CounterpartyUpdateArgs} args - Arguments to update one Counterparty.
     * @example
     * // Update one Counterparty
     * const counterparty = await prisma.counterparty.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends CounterpartyUpdateArgs>(args: SelectSubset<T, CounterpartyUpdateArgs<ExtArgs>>): Prisma__CounterpartyClient<$Result.GetResult<Prisma.$CounterpartyPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

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

    /**
     * Update zero or more Counterparties and returns the data updated in the database.
     * @param {CounterpartyUpdateManyAndReturnArgs} args - Arguments to update many Counterparties.
     * @example
     * // Update many Counterparties
     * const counterparty = await prisma.counterparty.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more Counterparties and only return the `id`
     * const counterpartyWithIdOnly = await prisma.counterparty.updateManyAndReturn({
     *   select: { id: true },
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    updateManyAndReturn<T extends CounterpartyUpdateManyAndReturnArgs>(args: SelectSubset<T, CounterpartyUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$CounterpartyPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

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


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

    /**
     * Allows you to perform aggregations operations on a Counterparty.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {CounterpartyAggregateArgs} 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 CounterpartyAggregateArgs>(args: Subset<T, CounterpartyAggregateArgs>): Prisma.PrismaPromise<GetCounterpartyAggregateType<T>>

    /**
     * Group by Counterparty.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {CounterpartyGroupByArgs} 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 CounterpartyGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: CounterpartyGroupByArgs['orderBy'] }
        : { orderBy?: CounterpartyGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends 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 Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends 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 Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends 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 True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, CounterpartyGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetCounterpartyGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the Counterparty model
   */
  readonly fields: CounterpartyFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for Counterparty.
   * 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__CounterpartyClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    counterparty<T extends OrganizationDefaultArgs<ExtArgs> = {}>(args?: Subset<T, OrganizationDefaultArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    organization<T extends OrganizationDefaultArgs<ExtArgs> = {}>(args?: Subset<T, OrganizationDefaultArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * 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): $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): $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): $Utils.JsPromise<T>
  }




  /**
   * Fields of the Counterparty model
   */
  interface CounterpartyFieldRefs {
    readonly id: FieldRef<"Counterparty", 'String'>
    readonly createdAt: FieldRef<"Counterparty", 'DateTime'>
    readonly organizationId: FieldRef<"Counterparty", 'String'>
    readonly counterpartyId: FieldRef<"Counterparty", 'String'>
  }
    

  // Custom InputTypes
  /**
   * Counterparty findUnique
   */
  export type CounterpartyFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Counterparty
     */
    select?: CounterpartySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Counterparty
     */
    omit?: CounterpartyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CounterpartyInclude<ExtArgs> | null
    /**
     * Filter, which Counterparty to fetch.
     */
    where: CounterpartyWhereUniqueInput
  }

  /**
   * Counterparty findUniqueOrThrow
   */
  export type CounterpartyFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Counterparty
     */
    select?: CounterpartySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Counterparty
     */
    omit?: CounterpartyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CounterpartyInclude<ExtArgs> | null
    /**
     * Filter, which Counterparty to fetch.
     */
    where: CounterpartyWhereUniqueInput
  }

  /**
   * Counterparty findFirst
   */
  export type CounterpartyFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Counterparty
     */
    select?: CounterpartySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Counterparty
     */
    omit?: CounterpartyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CounterpartyInclude<ExtArgs> | null
    /**
     * Filter, which Counterparty to fetch.
     */
    where?: CounterpartyWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Counterparties to fetch.
     */
    orderBy?: CounterpartyOrderByWithRelationInput | CounterpartyOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Counterparties.
     */
    cursor?: CounterpartyWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Counterparties 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` Counterparties.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Counterparties.
     */
    distinct?: CounterpartyScalarFieldEnum | CounterpartyScalarFieldEnum[]
  }

  /**
   * Counterparty findFirstOrThrow
   */
  export type CounterpartyFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Counterparty
     */
    select?: CounterpartySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Counterparty
     */
    omit?: CounterpartyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CounterpartyInclude<ExtArgs> | null
    /**
     * Filter, which Counterparty to fetch.
     */
    where?: CounterpartyWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Counterparties to fetch.
     */
    orderBy?: CounterpartyOrderByWithRelationInput | CounterpartyOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Counterparties.
     */
    cursor?: CounterpartyWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Counterparties 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` Counterparties.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Counterparties.
     */
    distinct?: CounterpartyScalarFieldEnum | CounterpartyScalarFieldEnum[]
  }

  /**
   * Counterparty findMany
   */
  export type CounterpartyFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Counterparty
     */
    select?: CounterpartySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Counterparty
     */
    omit?: CounterpartyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CounterpartyInclude<ExtArgs> | null
    /**
     * Filter, which Counterparties to fetch.
     */
    where?: CounterpartyWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Counterparties to fetch.
     */
    orderBy?: CounterpartyOrderByWithRelationInput | CounterpartyOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing Counterparties.
     */
    cursor?: CounterpartyWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Counterparties 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` Counterparties.
     */
    skip?: number
    distinct?: CounterpartyScalarFieldEnum | CounterpartyScalarFieldEnum[]
  }

  /**
   * Counterparty create
   */
  export type CounterpartyCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Counterparty
     */
    select?: CounterpartySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Counterparty
     */
    omit?: CounterpartyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CounterpartyInclude<ExtArgs> | null
    /**
     * The data needed to create a Counterparty.
     */
    data: XOR<CounterpartyCreateInput, CounterpartyUncheckedCreateInput>
  }

  /**
   * Counterparty createMany
   */
  export type CounterpartyCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many Counterparties.
     */
    data: CounterpartyCreateManyInput | CounterpartyCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Counterparty createManyAndReturn
   */
  export type CounterpartyCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Counterparty
     */
    select?: CounterpartySelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Counterparty
     */
    omit?: CounterpartyOmit<ExtArgs> | null
    /**
     * The data used to create many Counterparties.
     */
    data: CounterpartyCreateManyInput | CounterpartyCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CounterpartyIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * Counterparty update
   */
  export type CounterpartyUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Counterparty
     */
    select?: CounterpartySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Counterparty
     */
    omit?: CounterpartyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CounterpartyInclude<ExtArgs> | null
    /**
     * The data needed to update a Counterparty.
     */
    data: XOR<CounterpartyUpdateInput, CounterpartyUncheckedUpdateInput>
    /**
     * Choose, which Counterparty to update.
     */
    where: CounterpartyWhereUniqueInput
  }

  /**
   * Counterparty updateMany
   */
  export type CounterpartyUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update Counterparties.
     */
    data: XOR<CounterpartyUpdateManyMutationInput, CounterpartyUncheckedUpdateManyInput>
    /**
     * Filter which Counterparties to update
     */
    where?: CounterpartyWhereInput
    /**
     * Limit how many Counterparties to update.
     */
    limit?: number
  }

  /**
   * Counterparty updateManyAndReturn
   */
  export type CounterpartyUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Counterparty
     */
    select?: CounterpartySelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Counterparty
     */
    omit?: CounterpartyOmit<ExtArgs> | null
    /**
     * The data used to update Counterparties.
     */
    data: XOR<CounterpartyUpdateManyMutationInput, CounterpartyUncheckedUpdateManyInput>
    /**
     * Filter which Counterparties to update
     */
    where?: CounterpartyWhereInput
    /**
     * Limit how many Counterparties to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CounterpartyIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * Counterparty upsert
   */
  export type CounterpartyUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Counterparty
     */
    select?: CounterpartySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Counterparty
     */
    omit?: CounterpartyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CounterpartyInclude<ExtArgs> | null
    /**
     * The filter to search for the Counterparty to update in case it exists.
     */
    where: CounterpartyWhereUniqueInput
    /**
     * In case the Counterparty found by the `where` argument doesn't exist, create a new Counterparty with this data.
     */
    create: XOR<CounterpartyCreateInput, CounterpartyUncheckedCreateInput>
    /**
     * In case the Counterparty was found with the provided `where` argument, update it with this data.
     */
    update: XOR<CounterpartyUpdateInput, CounterpartyUncheckedUpdateInput>
  }

  /**
   * Counterparty delete
   */
  export type CounterpartyDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Counterparty
     */
    select?: CounterpartySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Counterparty
     */
    omit?: CounterpartyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CounterpartyInclude<ExtArgs> | null
    /**
     * Filter which Counterparty to delete.
     */
    where: CounterpartyWhereUniqueInput
  }

  /**
   * Counterparty deleteMany
   */
  export type CounterpartyDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Counterparties to delete
     */
    where?: CounterpartyWhereInput
    /**
     * Limit how many Counterparties to delete.
     */
    limit?: number
  }

  /**
   * Counterparty without action
   */
  export type CounterpartyDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Counterparty
     */
    select?: CounterpartySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Counterparty
     */
    omit?: CounterpartyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CounterpartyInclude<ExtArgs> | null
  }


  /**
   * Model Message
   */

  export type AggregateMessage = {
    _count: MessageCountAggregateOutputType | null
    _avg: MessageAvgAggregateOutputType | null
    _sum: MessageSumAggregateOutputType | null
    _min: MessageMinAggregateOutputType | null
    _max: MessageMaxAggregateOutputType | null
  }

  export type MessageAvgAggregateOutputType = {
    voiceDuration: number | null
    fileSize: number | null
  }

  export type MessageSumAggregateOutputType = {
    voiceDuration: number | null
    fileSize: number | null
  }

  export type MessageMinAggregateOutputType = {
    id: string | null
    content: string | null
    type: $Enums.MessageType | null
    voiceUrl: string | null
    voiceDuration: number | null
    fileUrl: string | null
    fileName: string | null
    fileSize: number | null
    fileType: string | null
    isRead: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
    senderId: string | null
    senderOrganizationId: string | null
    receiverOrganizationId: string | null
  }

  export type MessageMaxAggregateOutputType = {
    id: string | null
    content: string | null
    type: $Enums.MessageType | null
    voiceUrl: string | null
    voiceDuration: number | null
    fileUrl: string | null
    fileName: string | null
    fileSize: number | null
    fileType: string | null
    isRead: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
    senderId: string | null
    senderOrganizationId: string | null
    receiverOrganizationId: string | null
  }

  export type MessageCountAggregateOutputType = {
    id: number
    content: number
    type: number
    voiceUrl: number
    voiceDuration: number
    fileUrl: number
    fileName: number
    fileSize: number
    fileType: number
    isRead: number
    createdAt: number
    updatedAt: number
    senderId: number
    senderOrganizationId: number
    receiverOrganizationId: number
    _all: number
  }


  export type MessageAvgAggregateInputType = {
    voiceDuration?: true
    fileSize?: true
  }

  export type MessageSumAggregateInputType = {
    voiceDuration?: true
    fileSize?: true
  }

  export type MessageMinAggregateInputType = {
    id?: true
    content?: true
    type?: true
    voiceUrl?: true
    voiceDuration?: true
    fileUrl?: true
    fileName?: true
    fileSize?: true
    fileType?: true
    isRead?: true
    createdAt?: true
    updatedAt?: true
    senderId?: true
    senderOrganizationId?: true
    receiverOrganizationId?: true
  }

  export type MessageMaxAggregateInputType = {
    id?: true
    content?: true
    type?: true
    voiceUrl?: true
    voiceDuration?: true
    fileUrl?: true
    fileName?: true
    fileSize?: true
    fileType?: true
    isRead?: true
    createdAt?: true
    updatedAt?: true
    senderId?: true
    senderOrganizationId?: true
    receiverOrganizationId?: true
  }

  export type MessageCountAggregateInputType = {
    id?: true
    content?: true
    type?: true
    voiceUrl?: true
    voiceDuration?: true
    fileUrl?: true
    fileName?: true
    fileSize?: true
    fileType?: true
    isRead?: true
    createdAt?: true
    updatedAt?: true
    senderId?: true
    senderOrganizationId?: true
    receiverOrganizationId?: true
    _all?: true
  }

  export type MessageAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Message to aggregate.
     */
    where?: MessageWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Messages to fetch.
     */
    orderBy?: MessageOrderByWithRelationInput | MessageOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: MessageWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Messages 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` Messages.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned Messages
    **/
    _count?: true | MessageCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: MessageAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: MessageSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: MessageMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: MessageMaxAggregateInputType
  }

  export type GetMessageAggregateType<T extends MessageAggregateArgs> = {
        [P in keyof T & keyof AggregateMessage]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateMessage[P]>
      : GetScalarType<T[P], AggregateMessage[P]>
  }




  export type MessageGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: MessageWhereInput
    orderBy?: MessageOrderByWithAggregationInput | MessageOrderByWithAggregationInput[]
    by: MessageScalarFieldEnum[] | MessageScalarFieldEnum
    having?: MessageScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: MessageCountAggregateInputType | true
    _avg?: MessageAvgAggregateInputType
    _sum?: MessageSumAggregateInputType
    _min?: MessageMinAggregateInputType
    _max?: MessageMaxAggregateInputType
  }

  export type MessageGroupByOutputType = {
    id: string
    content: string | null
    type: $Enums.MessageType
    voiceUrl: string | null
    voiceDuration: number | null
    fileUrl: string | null
    fileName: string | null
    fileSize: number | null
    fileType: string | null
    isRead: boolean
    createdAt: Date
    updatedAt: Date
    senderId: string
    senderOrganizationId: string
    receiverOrganizationId: string
    _count: MessageCountAggregateOutputType | null
    _avg: MessageAvgAggregateOutputType | null
    _sum: MessageSumAggregateOutputType | null
    _min: MessageMinAggregateOutputType | null
    _max: MessageMaxAggregateOutputType | null
  }

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


  export type MessageSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    content?: boolean
    type?: boolean
    voiceUrl?: boolean
    voiceDuration?: boolean
    fileUrl?: boolean
    fileName?: boolean
    fileSize?: boolean
    fileType?: boolean
    isRead?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    senderId?: boolean
    senderOrganizationId?: boolean
    receiverOrganizationId?: boolean
    receiverOrganization?: boolean | OrganizationDefaultArgs<ExtArgs>
    sender?: boolean | UserDefaultArgs<ExtArgs>
    senderOrganization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["message"]>

  export type MessageSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    content?: boolean
    type?: boolean
    voiceUrl?: boolean
    voiceDuration?: boolean
    fileUrl?: boolean
    fileName?: boolean
    fileSize?: boolean
    fileType?: boolean
    isRead?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    senderId?: boolean
    senderOrganizationId?: boolean
    receiverOrganizationId?: boolean
    receiverOrganization?: boolean | OrganizationDefaultArgs<ExtArgs>
    sender?: boolean | UserDefaultArgs<ExtArgs>
    senderOrganization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["message"]>

  export type MessageSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    content?: boolean
    type?: boolean
    voiceUrl?: boolean
    voiceDuration?: boolean
    fileUrl?: boolean
    fileName?: boolean
    fileSize?: boolean
    fileType?: boolean
    isRead?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    senderId?: boolean
    senderOrganizationId?: boolean
    receiverOrganizationId?: boolean
    receiverOrganization?: boolean | OrganizationDefaultArgs<ExtArgs>
    sender?: boolean | UserDefaultArgs<ExtArgs>
    senderOrganization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["message"]>

  export type MessageSelectScalar = {
    id?: boolean
    content?: boolean
    type?: boolean
    voiceUrl?: boolean
    voiceDuration?: boolean
    fileUrl?: boolean
    fileName?: boolean
    fileSize?: boolean
    fileType?: boolean
    isRead?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    senderId?: boolean
    senderOrganizationId?: boolean
    receiverOrganizationId?: boolean
  }

  export type MessageOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "content" | "type" | "voiceUrl" | "voiceDuration" | "fileUrl" | "fileName" | "fileSize" | "fileType" | "isRead" | "createdAt" | "updatedAt" | "senderId" | "senderOrganizationId" | "receiverOrganizationId", ExtArgs["result"]["message"]>
  export type MessageInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    receiverOrganization?: boolean | OrganizationDefaultArgs<ExtArgs>
    sender?: boolean | UserDefaultArgs<ExtArgs>
    senderOrganization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }
  export type MessageIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    receiverOrganization?: boolean | OrganizationDefaultArgs<ExtArgs>
    sender?: boolean | UserDefaultArgs<ExtArgs>
    senderOrganization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }
  export type MessageIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    receiverOrganization?: boolean | OrganizationDefaultArgs<ExtArgs>
    sender?: boolean | UserDefaultArgs<ExtArgs>
    senderOrganization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }

  export type $MessagePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "Message"
    objects: {
      receiverOrganization: Prisma.$OrganizationPayload<ExtArgs>
      sender: Prisma.$UserPayload<ExtArgs>
      senderOrganization: Prisma.$OrganizationPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      content: string | null
      type: $Enums.MessageType
      voiceUrl: string | null
      voiceDuration: number | null
      fileUrl: string | null
      fileName: string | null
      fileSize: number | null
      fileType: string | null
      isRead: boolean
      createdAt: Date
      updatedAt: Date
      senderId: string
      senderOrganizationId: string
      receiverOrganizationId: string
    }, ExtArgs["result"]["message"]>
    composites: {}
  }

  type MessageGetPayload<S extends boolean | null | undefined | MessageDefaultArgs> = $Result.GetResult<Prisma.$MessagePayload, S>

  type MessageCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<MessageFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: MessageCountAggregateInputType | true
    }

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

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

    /**
     * Find the first Message 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 {MessageFindFirstArgs} args - Arguments to find a Message
     * @example
     * // Get one Message
     * const message = await prisma.message.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends MessageFindFirstArgs>(args?: SelectSubset<T, MessageFindFirstArgs<ExtArgs>>): Prisma__MessageClient<$Result.GetResult<Prisma.$MessagePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Message 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 {MessageFindFirstOrThrowArgs} args - Arguments to find a Message
     * @example
     * // Get one Message
     * const message = await prisma.message.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends MessageFindFirstOrThrowArgs>(args?: SelectSubset<T, MessageFindFirstOrThrowArgs<ExtArgs>>): Prisma__MessageClient<$Result.GetResult<Prisma.$MessagePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more Messages 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 {MessageFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all Messages
     * const messages = await prisma.message.findMany()
     * 
     * // Get first 10 Messages
     * const messages = await prisma.message.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const messageWithIdOnly = await prisma.message.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends MessageFindManyArgs>(args?: SelectSubset<T, MessageFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MessagePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a Message.
     * @param {MessageCreateArgs} args - Arguments to create a Message.
     * @example
     * // Create one Message
     * const Message = await prisma.message.create({
     *   data: {
     *     // ... data to create a Message
     *   }
     * })
     * 
     */
    create<T extends MessageCreateArgs>(args: SelectSubset<T, MessageCreateArgs<ExtArgs>>): Prisma__MessageClient<$Result.GetResult<Prisma.$MessagePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

    /**
     * Create many Messages and returns the data saved in the database.
     * @param {MessageCreateManyAndReturnArgs} args - Arguments to create many Messages.
     * @example
     * // Create many Messages
     * const message = await prisma.message.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many Messages and only return the `id`
     * const messageWithIdOnly = await prisma.message.createManyAndReturn({
     *   select: { id: true },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    createManyAndReturn<T extends MessageCreateManyAndReturnArgs>(args?: SelectSubset<T, MessageCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MessagePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a Message.
     * @param {MessageDeleteArgs} args - Arguments to delete one Message.
     * @example
     * // Delete one Message
     * const Message = await prisma.message.delete({
     *   where: {
     *     // ... filter to delete one Message
     *   }
     * })
     * 
     */
    delete<T extends MessageDeleteArgs>(args: SelectSubset<T, MessageDeleteArgs<ExtArgs>>): Prisma__MessageClient<$Result.GetResult<Prisma.$MessagePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one Message.
     * @param {MessageUpdateArgs} args - Arguments to update one Message.
     * @example
     * // Update one Message
     * const message = await prisma.message.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends MessageUpdateArgs>(args: SelectSubset<T, MessageUpdateArgs<ExtArgs>>): Prisma__MessageClient<$Result.GetResult<Prisma.$MessagePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

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

    /**
     * Update zero or more Messages and returns the data updated in the database.
     * @param {MessageUpdateManyAndReturnArgs} args - Arguments to update many Messages.
     * @example
     * // Update many Messages
     * const message = await prisma.message.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more Messages and only return the `id`
     * const messageWithIdOnly = await prisma.message.updateManyAndReturn({
     *   select: { id: true },
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    updateManyAndReturn<T extends MessageUpdateManyAndReturnArgs>(args: SelectSubset<T, MessageUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MessagePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

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


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

    /**
     * Allows you to perform aggregations operations on a Message.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MessageAggregateArgs} 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 MessageAggregateArgs>(args: Subset<T, MessageAggregateArgs>): Prisma.PrismaPromise<GetMessageAggregateType<T>>

    /**
     * Group by Message.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MessageGroupByArgs} 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 MessageGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: MessageGroupByArgs['orderBy'] }
        : { orderBy?: MessageGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends 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 Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends 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 Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends 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 True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, MessageGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetMessageGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the Message model
   */
  readonly fields: MessageFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for Message.
   * 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__MessageClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    receiverOrganization<T extends OrganizationDefaultArgs<ExtArgs> = {}>(args?: Subset<T, OrganizationDefaultArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    sender<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    senderOrganization<T extends OrganizationDefaultArgs<ExtArgs> = {}>(args?: Subset<T, OrganizationDefaultArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * 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): $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): $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): $Utils.JsPromise<T>
  }




  /**
   * Fields of the Message model
   */
  interface MessageFieldRefs {
    readonly id: FieldRef<"Message", 'String'>
    readonly content: FieldRef<"Message", 'String'>
    readonly type: FieldRef<"Message", 'MessageType'>
    readonly voiceUrl: FieldRef<"Message", 'String'>
    readonly voiceDuration: FieldRef<"Message", 'Int'>
    readonly fileUrl: FieldRef<"Message", 'String'>
    readonly fileName: FieldRef<"Message", 'String'>
    readonly fileSize: FieldRef<"Message", 'Int'>
    readonly fileType: FieldRef<"Message", 'String'>
    readonly isRead: FieldRef<"Message", 'Boolean'>
    readonly createdAt: FieldRef<"Message", 'DateTime'>
    readonly updatedAt: FieldRef<"Message", 'DateTime'>
    readonly senderId: FieldRef<"Message", 'String'>
    readonly senderOrganizationId: FieldRef<"Message", 'String'>
    readonly receiverOrganizationId: FieldRef<"Message", 'String'>
  }
    

  // Custom InputTypes
  /**
   * Message findUnique
   */
  export type MessageFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Message
     */
    select?: MessageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Message
     */
    omit?: MessageOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MessageInclude<ExtArgs> | null
    /**
     * Filter, which Message to fetch.
     */
    where: MessageWhereUniqueInput
  }

  /**
   * Message findUniqueOrThrow
   */
  export type MessageFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Message
     */
    select?: MessageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Message
     */
    omit?: MessageOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MessageInclude<ExtArgs> | null
    /**
     * Filter, which Message to fetch.
     */
    where: MessageWhereUniqueInput
  }

  /**
   * Message findFirst
   */
  export type MessageFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Message
     */
    select?: MessageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Message
     */
    omit?: MessageOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MessageInclude<ExtArgs> | null
    /**
     * Filter, which Message to fetch.
     */
    where?: MessageWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Messages to fetch.
     */
    orderBy?: MessageOrderByWithRelationInput | MessageOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Messages.
     */
    cursor?: MessageWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Messages 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` Messages.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Messages.
     */
    distinct?: MessageScalarFieldEnum | MessageScalarFieldEnum[]
  }

  /**
   * Message findFirstOrThrow
   */
  export type MessageFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Message
     */
    select?: MessageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Message
     */
    omit?: MessageOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MessageInclude<ExtArgs> | null
    /**
     * Filter, which Message to fetch.
     */
    where?: MessageWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Messages to fetch.
     */
    orderBy?: MessageOrderByWithRelationInput | MessageOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Messages.
     */
    cursor?: MessageWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Messages 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` Messages.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Messages.
     */
    distinct?: MessageScalarFieldEnum | MessageScalarFieldEnum[]
  }

  /**
   * Message findMany
   */
  export type MessageFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Message
     */
    select?: MessageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Message
     */
    omit?: MessageOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MessageInclude<ExtArgs> | null
    /**
     * Filter, which Messages to fetch.
     */
    where?: MessageWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Messages to fetch.
     */
    orderBy?: MessageOrderByWithRelationInput | MessageOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing Messages.
     */
    cursor?: MessageWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Messages 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` Messages.
     */
    skip?: number
    distinct?: MessageScalarFieldEnum | MessageScalarFieldEnum[]
  }

  /**
   * Message create
   */
  export type MessageCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Message
     */
    select?: MessageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Message
     */
    omit?: MessageOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MessageInclude<ExtArgs> | null
    /**
     * The data needed to create a Message.
     */
    data: XOR<MessageCreateInput, MessageUncheckedCreateInput>
  }

  /**
   * Message createMany
   */
  export type MessageCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many Messages.
     */
    data: MessageCreateManyInput | MessageCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Message createManyAndReturn
   */
  export type MessageCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Message
     */
    select?: MessageSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Message
     */
    omit?: MessageOmit<ExtArgs> | null
    /**
     * The data used to create many Messages.
     */
    data: MessageCreateManyInput | MessageCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MessageIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * Message update
   */
  export type MessageUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Message
     */
    select?: MessageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Message
     */
    omit?: MessageOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MessageInclude<ExtArgs> | null
    /**
     * The data needed to update a Message.
     */
    data: XOR<MessageUpdateInput, MessageUncheckedUpdateInput>
    /**
     * Choose, which Message to update.
     */
    where: MessageWhereUniqueInput
  }

  /**
   * Message updateMany
   */
  export type MessageUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update Messages.
     */
    data: XOR<MessageUpdateManyMutationInput, MessageUncheckedUpdateManyInput>
    /**
     * Filter which Messages to update
     */
    where?: MessageWhereInput
    /**
     * Limit how many Messages to update.
     */
    limit?: number
  }

  /**
   * Message updateManyAndReturn
   */
  export type MessageUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Message
     */
    select?: MessageSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Message
     */
    omit?: MessageOmit<ExtArgs> | null
    /**
     * The data used to update Messages.
     */
    data: XOR<MessageUpdateManyMutationInput, MessageUncheckedUpdateManyInput>
    /**
     * Filter which Messages to update
     */
    where?: MessageWhereInput
    /**
     * Limit how many Messages to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MessageIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * Message upsert
   */
  export type MessageUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Message
     */
    select?: MessageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Message
     */
    omit?: MessageOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MessageInclude<ExtArgs> | null
    /**
     * The filter to search for the Message to update in case it exists.
     */
    where: MessageWhereUniqueInput
    /**
     * In case the Message found by the `where` argument doesn't exist, create a new Message with this data.
     */
    create: XOR<MessageCreateInput, MessageUncheckedCreateInput>
    /**
     * In case the Message was found with the provided `where` argument, update it with this data.
     */
    update: XOR<MessageUpdateInput, MessageUncheckedUpdateInput>
  }

  /**
   * Message delete
   */
  export type MessageDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Message
     */
    select?: MessageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Message
     */
    omit?: MessageOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MessageInclude<ExtArgs> | null
    /**
     * Filter which Message to delete.
     */
    where: MessageWhereUniqueInput
  }

  /**
   * Message deleteMany
   */
  export type MessageDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Messages to delete
     */
    where?: MessageWhereInput
    /**
     * Limit how many Messages to delete.
     */
    limit?: number
  }

  /**
   * Message without action
   */
  export type MessageDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Message
     */
    select?: MessageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Message
     */
    omit?: MessageOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MessageInclude<ExtArgs> | null
  }


  /**
   * Model Service
   */

  export type AggregateService = {
    _count: ServiceCountAggregateOutputType | null
    _avg: ServiceAvgAggregateOutputType | null
    _sum: ServiceSumAggregateOutputType | null
    _min: ServiceMinAggregateOutputType | null
    _max: ServiceMaxAggregateOutputType | null
  }

  export type ServiceAvgAggregateOutputType = {
    price: Decimal | null
  }

  export type ServiceSumAggregateOutputType = {
    price: Decimal | null
  }

  export type ServiceMinAggregateOutputType = {
    id: string | null
    name: string | null
    description: string | null
    price: Decimal | null
    imageUrl: string | null
    createdAt: Date | null
    updatedAt: Date | null
    organizationId: string | null
  }

  export type ServiceMaxAggregateOutputType = {
    id: string | null
    name: string | null
    description: string | null
    price: Decimal | null
    imageUrl: string | null
    createdAt: Date | null
    updatedAt: Date | null
    organizationId: string | null
  }

  export type ServiceCountAggregateOutputType = {
    id: number
    name: number
    description: number
    price: number
    imageUrl: number
    createdAt: number
    updatedAt: number
    organizationId: number
    _all: number
  }


  export type ServiceAvgAggregateInputType = {
    price?: true
  }

  export type ServiceSumAggregateInputType = {
    price?: true
  }

  export type ServiceMinAggregateInputType = {
    id?: true
    name?: true
    description?: true
    price?: true
    imageUrl?: true
    createdAt?: true
    updatedAt?: true
    organizationId?: true
  }

  export type ServiceMaxAggregateInputType = {
    id?: true
    name?: true
    description?: true
    price?: true
    imageUrl?: true
    createdAt?: true
    updatedAt?: true
    organizationId?: true
  }

  export type ServiceCountAggregateInputType = {
    id?: true
    name?: true
    description?: true
    price?: true
    imageUrl?: true
    createdAt?: true
    updatedAt?: true
    organizationId?: true
    _all?: true
  }

  export type ServiceAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Service to aggregate.
     */
    where?: ServiceWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Services to fetch.
     */
    orderBy?: ServiceOrderByWithRelationInput | ServiceOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: ServiceWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Services 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` Services.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned Services
    **/
    _count?: true | ServiceCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: ServiceAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: ServiceSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: ServiceMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: ServiceMaxAggregateInputType
  }

  export type GetServiceAggregateType<T extends ServiceAggregateArgs> = {
        [P in keyof T & keyof AggregateService]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateService[P]>
      : GetScalarType<T[P], AggregateService[P]>
  }




  export type ServiceGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ServiceWhereInput
    orderBy?: ServiceOrderByWithAggregationInput | ServiceOrderByWithAggregationInput[]
    by: ServiceScalarFieldEnum[] | ServiceScalarFieldEnum
    having?: ServiceScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: ServiceCountAggregateInputType | true
    _avg?: ServiceAvgAggregateInputType
    _sum?: ServiceSumAggregateInputType
    _min?: ServiceMinAggregateInputType
    _max?: ServiceMaxAggregateInputType
  }

  export type ServiceGroupByOutputType = {
    id: string
    name: string
    description: string | null
    price: Decimal
    imageUrl: string | null
    createdAt: Date
    updatedAt: Date
    organizationId: string
    _count: ServiceCountAggregateOutputType | null
    _avg: ServiceAvgAggregateOutputType | null
    _sum: ServiceSumAggregateOutputType | null
    _min: ServiceMinAggregateOutputType | null
    _max: ServiceMaxAggregateOutputType | null
  }

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


  export type ServiceSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    description?: boolean
    price?: boolean
    imageUrl?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    organizationId?: boolean
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["service"]>

  export type ServiceSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    description?: boolean
    price?: boolean
    imageUrl?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    organizationId?: boolean
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["service"]>

  export type ServiceSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    description?: boolean
    price?: boolean
    imageUrl?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    organizationId?: boolean
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["service"]>

  export type ServiceSelectScalar = {
    id?: boolean
    name?: boolean
    description?: boolean
    price?: boolean
    imageUrl?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    organizationId?: boolean
  }

  export type ServiceOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "name" | "description" | "price" | "imageUrl" | "createdAt" | "updatedAt" | "organizationId", ExtArgs["result"]["service"]>
  export type ServiceInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }
  export type ServiceIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }
  export type ServiceIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }

  export type $ServicePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "Service"
    objects: {
      organization: Prisma.$OrganizationPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      name: string
      description: string | null
      price: Prisma.Decimal
      imageUrl: string | null
      createdAt: Date
      updatedAt: Date
      organizationId: string
    }, ExtArgs["result"]["service"]>
    composites: {}
  }

  type ServiceGetPayload<S extends boolean | null | undefined | ServiceDefaultArgs> = $Result.GetResult<Prisma.$ServicePayload, S>

  type ServiceCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<ServiceFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: ServiceCountAggregateInputType | true
    }

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

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

    /**
     * Find the first Service 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 {ServiceFindFirstArgs} args - Arguments to find a Service
     * @example
     * // Get one Service
     * const service = await prisma.service.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends ServiceFindFirstArgs>(args?: SelectSubset<T, ServiceFindFirstArgs<ExtArgs>>): Prisma__ServiceClient<$Result.GetResult<Prisma.$ServicePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Service 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 {ServiceFindFirstOrThrowArgs} args - Arguments to find a Service
     * @example
     * // Get one Service
     * const service = await prisma.service.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends ServiceFindFirstOrThrowArgs>(args?: SelectSubset<T, ServiceFindFirstOrThrowArgs<ExtArgs>>): Prisma__ServiceClient<$Result.GetResult<Prisma.$ServicePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more Services 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 {ServiceFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all Services
     * const services = await prisma.service.findMany()
     * 
     * // Get first 10 Services
     * const services = await prisma.service.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const serviceWithIdOnly = await prisma.service.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends ServiceFindManyArgs>(args?: SelectSubset<T, ServiceFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ServicePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a Service.
     * @param {ServiceCreateArgs} args - Arguments to create a Service.
     * @example
     * // Create one Service
     * const Service = await prisma.service.create({
     *   data: {
     *     // ... data to create a Service
     *   }
     * })
     * 
     */
    create<T extends ServiceCreateArgs>(args: SelectSubset<T, ServiceCreateArgs<ExtArgs>>): Prisma__ServiceClient<$Result.GetResult<Prisma.$ServicePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

    /**
     * Create many Services and returns the data saved in the database.
     * @param {ServiceCreateManyAndReturnArgs} args - Arguments to create many Services.
     * @example
     * // Create many Services
     * const service = await prisma.service.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many Services and only return the `id`
     * const serviceWithIdOnly = await prisma.service.createManyAndReturn({
     *   select: { id: true },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    createManyAndReturn<T extends ServiceCreateManyAndReturnArgs>(args?: SelectSubset<T, ServiceCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ServicePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a Service.
     * @param {ServiceDeleteArgs} args - Arguments to delete one Service.
     * @example
     * // Delete one Service
     * const Service = await prisma.service.delete({
     *   where: {
     *     // ... filter to delete one Service
     *   }
     * })
     * 
     */
    delete<T extends ServiceDeleteArgs>(args: SelectSubset<T, ServiceDeleteArgs<ExtArgs>>): Prisma__ServiceClient<$Result.GetResult<Prisma.$ServicePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one Service.
     * @param {ServiceUpdateArgs} args - Arguments to update one Service.
     * @example
     * // Update one Service
     * const service = await prisma.service.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends ServiceUpdateArgs>(args: SelectSubset<T, ServiceUpdateArgs<ExtArgs>>): Prisma__ServiceClient<$Result.GetResult<Prisma.$ServicePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

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

    /**
     * Update zero or more Services and returns the data updated in the database.
     * @param {ServiceUpdateManyAndReturnArgs} args - Arguments to update many Services.
     * @example
     * // Update many Services
     * const service = await prisma.service.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more Services and only return the `id`
     * const serviceWithIdOnly = await prisma.service.updateManyAndReturn({
     *   select: { id: true },
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    updateManyAndReturn<T extends ServiceUpdateManyAndReturnArgs>(args: SelectSubset<T, ServiceUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ServicePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

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


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

    /**
     * Allows you to perform aggregations operations on a Service.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ServiceAggregateArgs} 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 ServiceAggregateArgs>(args: Subset<T, ServiceAggregateArgs>): Prisma.PrismaPromise<GetServiceAggregateType<T>>

    /**
     * Group by Service.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ServiceGroupByArgs} 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 ServiceGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: ServiceGroupByArgs['orderBy'] }
        : { orderBy?: ServiceGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends 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 Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends 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 Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends 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 True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, ServiceGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetServiceGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the Service model
   */
  readonly fields: ServiceFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for Service.
   * 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__ServiceClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    organization<T extends OrganizationDefaultArgs<ExtArgs> = {}>(args?: Subset<T, OrganizationDefaultArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * 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): $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): $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): $Utils.JsPromise<T>
  }




  /**
   * Fields of the Service model
   */
  interface ServiceFieldRefs {
    readonly id: FieldRef<"Service", 'String'>
    readonly name: FieldRef<"Service", 'String'>
    readonly description: FieldRef<"Service", 'String'>
    readonly price: FieldRef<"Service", 'Decimal'>
    readonly imageUrl: FieldRef<"Service", 'String'>
    readonly createdAt: FieldRef<"Service", 'DateTime'>
    readonly updatedAt: FieldRef<"Service", 'DateTime'>
    readonly organizationId: FieldRef<"Service", 'String'>
  }
    

  // Custom InputTypes
  /**
   * Service findUnique
   */
  export type ServiceFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Service
     */
    select?: ServiceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Service
     */
    omit?: ServiceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ServiceInclude<ExtArgs> | null
    /**
     * Filter, which Service to fetch.
     */
    where: ServiceWhereUniqueInput
  }

  /**
   * Service findUniqueOrThrow
   */
  export type ServiceFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Service
     */
    select?: ServiceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Service
     */
    omit?: ServiceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ServiceInclude<ExtArgs> | null
    /**
     * Filter, which Service to fetch.
     */
    where: ServiceWhereUniqueInput
  }

  /**
   * Service findFirst
   */
  export type ServiceFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Service
     */
    select?: ServiceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Service
     */
    omit?: ServiceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ServiceInclude<ExtArgs> | null
    /**
     * Filter, which Service to fetch.
     */
    where?: ServiceWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Services to fetch.
     */
    orderBy?: ServiceOrderByWithRelationInput | ServiceOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Services.
     */
    cursor?: ServiceWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Services 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` Services.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Services.
     */
    distinct?: ServiceScalarFieldEnum | ServiceScalarFieldEnum[]
  }

  /**
   * Service findFirstOrThrow
   */
  export type ServiceFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Service
     */
    select?: ServiceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Service
     */
    omit?: ServiceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ServiceInclude<ExtArgs> | null
    /**
     * Filter, which Service to fetch.
     */
    where?: ServiceWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Services to fetch.
     */
    orderBy?: ServiceOrderByWithRelationInput | ServiceOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Services.
     */
    cursor?: ServiceWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Services 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` Services.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Services.
     */
    distinct?: ServiceScalarFieldEnum | ServiceScalarFieldEnum[]
  }

  /**
   * Service findMany
   */
  export type ServiceFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Service
     */
    select?: ServiceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Service
     */
    omit?: ServiceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ServiceInclude<ExtArgs> | null
    /**
     * Filter, which Services to fetch.
     */
    where?: ServiceWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Services to fetch.
     */
    orderBy?: ServiceOrderByWithRelationInput | ServiceOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing Services.
     */
    cursor?: ServiceWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Services 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` Services.
     */
    skip?: number
    distinct?: ServiceScalarFieldEnum | ServiceScalarFieldEnum[]
  }

  /**
   * Service create
   */
  export type ServiceCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Service
     */
    select?: ServiceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Service
     */
    omit?: ServiceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ServiceInclude<ExtArgs> | null
    /**
     * The data needed to create a Service.
     */
    data: XOR<ServiceCreateInput, ServiceUncheckedCreateInput>
  }

  /**
   * Service createMany
   */
  export type ServiceCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many Services.
     */
    data: ServiceCreateManyInput | ServiceCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Service createManyAndReturn
   */
  export type ServiceCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Service
     */
    select?: ServiceSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Service
     */
    omit?: ServiceOmit<ExtArgs> | null
    /**
     * The data used to create many Services.
     */
    data: ServiceCreateManyInput | ServiceCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ServiceIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * Service update
   */
  export type ServiceUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Service
     */
    select?: ServiceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Service
     */
    omit?: ServiceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ServiceInclude<ExtArgs> | null
    /**
     * The data needed to update a Service.
     */
    data: XOR<ServiceUpdateInput, ServiceUncheckedUpdateInput>
    /**
     * Choose, which Service to update.
     */
    where: ServiceWhereUniqueInput
  }

  /**
   * Service updateMany
   */
  export type ServiceUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update Services.
     */
    data: XOR<ServiceUpdateManyMutationInput, ServiceUncheckedUpdateManyInput>
    /**
     * Filter which Services to update
     */
    where?: ServiceWhereInput
    /**
     * Limit how many Services to update.
     */
    limit?: number
  }

  /**
   * Service updateManyAndReturn
   */
  export type ServiceUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Service
     */
    select?: ServiceSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Service
     */
    omit?: ServiceOmit<ExtArgs> | null
    /**
     * The data used to update Services.
     */
    data: XOR<ServiceUpdateManyMutationInput, ServiceUncheckedUpdateManyInput>
    /**
     * Filter which Services to update
     */
    where?: ServiceWhereInput
    /**
     * Limit how many Services to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ServiceIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * Service upsert
   */
  export type ServiceUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Service
     */
    select?: ServiceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Service
     */
    omit?: ServiceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ServiceInclude<ExtArgs> | null
    /**
     * The filter to search for the Service to update in case it exists.
     */
    where: ServiceWhereUniqueInput
    /**
     * In case the Service found by the `where` argument doesn't exist, create a new Service with this data.
     */
    create: XOR<ServiceCreateInput, ServiceUncheckedCreateInput>
    /**
     * In case the Service was found with the provided `where` argument, update it with this data.
     */
    update: XOR<ServiceUpdateInput, ServiceUncheckedUpdateInput>
  }

  /**
   * Service delete
   */
  export type ServiceDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Service
     */
    select?: ServiceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Service
     */
    omit?: ServiceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ServiceInclude<ExtArgs> | null
    /**
     * Filter which Service to delete.
     */
    where: ServiceWhereUniqueInput
  }

  /**
   * Service deleteMany
   */
  export type ServiceDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Services to delete
     */
    where?: ServiceWhereInput
    /**
     * Limit how many Services to delete.
     */
    limit?: number
  }

  /**
   * Service without action
   */
  export type ServiceDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Service
     */
    select?: ServiceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Service
     */
    omit?: ServiceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ServiceInclude<ExtArgs> | null
  }


  /**
   * Model Supply
   */

  export type AggregateSupply = {
    _count: SupplyCountAggregateOutputType | null
    _avg: SupplyAvgAggregateOutputType | null
    _sum: SupplySumAggregateOutputType | null
    _min: SupplyMinAggregateOutputType | null
    _max: SupplyMaxAggregateOutputType | null
  }

  export type SupplyAvgAggregateOutputType = {
    price: Decimal | null
    quantity: number | null
    minStock: number | null
    currentStock: number | null
  }

  export type SupplySumAggregateOutputType = {
    price: Decimal | null
    quantity: number | null
    minStock: number | null
    currentStock: number | null
  }

  export type SupplyMinAggregateOutputType = {
    id: string | null
    name: string | null
    description: string | null
    price: Decimal | null
    quantity: number | null
    unit: string | null
    category: string | null
    status: string | null
    date: Date | null
    supplier: string | null
    minStock: number | null
    currentStock: number | null
    imageUrl: string | null
    createdAt: Date | null
    updatedAt: Date | null
    organizationId: string | null
  }

  export type SupplyMaxAggregateOutputType = {
    id: string | null
    name: string | null
    description: string | null
    price: Decimal | null
    quantity: number | null
    unit: string | null
    category: string | null
    status: string | null
    date: Date | null
    supplier: string | null
    minStock: number | null
    currentStock: number | null
    imageUrl: string | null
    createdAt: Date | null
    updatedAt: Date | null
    organizationId: string | null
  }

  export type SupplyCountAggregateOutputType = {
    id: number
    name: number
    description: number
    price: number
    quantity: number
    unit: number
    category: number
    status: number
    date: number
    supplier: number
    minStock: number
    currentStock: number
    imageUrl: number
    createdAt: number
    updatedAt: number
    organizationId: number
    _all: number
  }


  export type SupplyAvgAggregateInputType = {
    price?: true
    quantity?: true
    minStock?: true
    currentStock?: true
  }

  export type SupplySumAggregateInputType = {
    price?: true
    quantity?: true
    minStock?: true
    currentStock?: true
  }

  export type SupplyMinAggregateInputType = {
    id?: true
    name?: true
    description?: true
    price?: true
    quantity?: true
    unit?: true
    category?: true
    status?: true
    date?: true
    supplier?: true
    minStock?: true
    currentStock?: true
    imageUrl?: true
    createdAt?: true
    updatedAt?: true
    organizationId?: true
  }

  export type SupplyMaxAggregateInputType = {
    id?: true
    name?: true
    description?: true
    price?: true
    quantity?: true
    unit?: true
    category?: true
    status?: true
    date?: true
    supplier?: true
    minStock?: true
    currentStock?: true
    imageUrl?: true
    createdAt?: true
    updatedAt?: true
    organizationId?: true
  }

  export type SupplyCountAggregateInputType = {
    id?: true
    name?: true
    description?: true
    price?: true
    quantity?: true
    unit?: true
    category?: true
    status?: true
    date?: true
    supplier?: true
    minStock?: true
    currentStock?: true
    imageUrl?: true
    createdAt?: true
    updatedAt?: true
    organizationId?: true
    _all?: true
  }

  export type SupplyAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Supply to aggregate.
     */
    where?: SupplyWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Supplies to fetch.
     */
    orderBy?: SupplyOrderByWithRelationInput | SupplyOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: SupplyWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Supplies 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` Supplies.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned Supplies
    **/
    _count?: true | SupplyCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: SupplyAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: SupplySumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: SupplyMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: SupplyMaxAggregateInputType
  }

  export type GetSupplyAggregateType<T extends SupplyAggregateArgs> = {
        [P in keyof T & keyof AggregateSupply]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateSupply[P]>
      : GetScalarType<T[P], AggregateSupply[P]>
  }




  export type SupplyGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: SupplyWhereInput
    orderBy?: SupplyOrderByWithAggregationInput | SupplyOrderByWithAggregationInput[]
    by: SupplyScalarFieldEnum[] | SupplyScalarFieldEnum
    having?: SupplyScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: SupplyCountAggregateInputType | true
    _avg?: SupplyAvgAggregateInputType
    _sum?: SupplySumAggregateInputType
    _min?: SupplyMinAggregateInputType
    _max?: SupplyMaxAggregateInputType
  }

  export type SupplyGroupByOutputType = {
    id: string
    name: string
    description: string | null
    price: Decimal
    quantity: number
    unit: string
    category: string
    status: string
    date: Date
    supplier: string
    minStock: number
    currentStock: number
    imageUrl: string | null
    createdAt: Date
    updatedAt: Date
    organizationId: string
    _count: SupplyCountAggregateOutputType | null
    _avg: SupplyAvgAggregateOutputType | null
    _sum: SupplySumAggregateOutputType | null
    _min: SupplyMinAggregateOutputType | null
    _max: SupplyMaxAggregateOutputType | null
  }

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


  export type SupplySelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    description?: boolean
    price?: boolean
    quantity?: boolean
    unit?: boolean
    category?: boolean
    status?: boolean
    date?: boolean
    supplier?: boolean
    minStock?: boolean
    currentStock?: boolean
    imageUrl?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    organizationId?: boolean
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["supply"]>

  export type SupplySelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    description?: boolean
    price?: boolean
    quantity?: boolean
    unit?: boolean
    category?: boolean
    status?: boolean
    date?: boolean
    supplier?: boolean
    minStock?: boolean
    currentStock?: boolean
    imageUrl?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    organizationId?: boolean
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["supply"]>

  export type SupplySelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    description?: boolean
    price?: boolean
    quantity?: boolean
    unit?: boolean
    category?: boolean
    status?: boolean
    date?: boolean
    supplier?: boolean
    minStock?: boolean
    currentStock?: boolean
    imageUrl?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    organizationId?: boolean
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["supply"]>

  export type SupplySelectScalar = {
    id?: boolean
    name?: boolean
    description?: boolean
    price?: boolean
    quantity?: boolean
    unit?: boolean
    category?: boolean
    status?: boolean
    date?: boolean
    supplier?: boolean
    minStock?: boolean
    currentStock?: boolean
    imageUrl?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    organizationId?: boolean
  }

  export type SupplyOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "name" | "description" | "price" | "quantity" | "unit" | "category" | "status" | "date" | "supplier" | "minStock" | "currentStock" | "imageUrl" | "createdAt" | "updatedAt" | "organizationId", ExtArgs["result"]["supply"]>
  export type SupplyInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }
  export type SupplyIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }
  export type SupplyIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }

  export type $SupplyPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "Supply"
    objects: {
      organization: Prisma.$OrganizationPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      name: string
      description: string | null
      price: Prisma.Decimal
      quantity: number
      unit: string
      category: string
      status: string
      date: Date
      supplier: string
      minStock: number
      currentStock: number
      imageUrl: string | null
      createdAt: Date
      updatedAt: Date
      organizationId: string
    }, ExtArgs["result"]["supply"]>
    composites: {}
  }

  type SupplyGetPayload<S extends boolean | null | undefined | SupplyDefaultArgs> = $Result.GetResult<Prisma.$SupplyPayload, S>

  type SupplyCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<SupplyFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: SupplyCountAggregateInputType | true
    }

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

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

    /**
     * Find the first Supply 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 {SupplyFindFirstArgs} args - Arguments to find a Supply
     * @example
     * // Get one Supply
     * const supply = await prisma.supply.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends SupplyFindFirstArgs>(args?: SelectSubset<T, SupplyFindFirstArgs<ExtArgs>>): Prisma__SupplyClient<$Result.GetResult<Prisma.$SupplyPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Supply 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 {SupplyFindFirstOrThrowArgs} args - Arguments to find a Supply
     * @example
     * // Get one Supply
     * const supply = await prisma.supply.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends SupplyFindFirstOrThrowArgs>(args?: SelectSubset<T, SupplyFindFirstOrThrowArgs<ExtArgs>>): Prisma__SupplyClient<$Result.GetResult<Prisma.$SupplyPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more Supplies 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 {SupplyFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all Supplies
     * const supplies = await prisma.supply.findMany()
     * 
     * // Get first 10 Supplies
     * const supplies = await prisma.supply.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const supplyWithIdOnly = await prisma.supply.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends SupplyFindManyArgs>(args?: SelectSubset<T, SupplyFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SupplyPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a Supply.
     * @param {SupplyCreateArgs} args - Arguments to create a Supply.
     * @example
     * // Create one Supply
     * const Supply = await prisma.supply.create({
     *   data: {
     *     // ... data to create a Supply
     *   }
     * })
     * 
     */
    create<T extends SupplyCreateArgs>(args: SelectSubset<T, SupplyCreateArgs<ExtArgs>>): Prisma__SupplyClient<$Result.GetResult<Prisma.$SupplyPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

    /**
     * Create many Supplies and returns the data saved in the database.
     * @param {SupplyCreateManyAndReturnArgs} args - Arguments to create many Supplies.
     * @example
     * // Create many Supplies
     * const supply = await prisma.supply.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many Supplies and only return the `id`
     * const supplyWithIdOnly = await prisma.supply.createManyAndReturn({
     *   select: { id: true },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    createManyAndReturn<T extends SupplyCreateManyAndReturnArgs>(args?: SelectSubset<T, SupplyCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SupplyPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a Supply.
     * @param {SupplyDeleteArgs} args - Arguments to delete one Supply.
     * @example
     * // Delete one Supply
     * const Supply = await prisma.supply.delete({
     *   where: {
     *     // ... filter to delete one Supply
     *   }
     * })
     * 
     */
    delete<T extends SupplyDeleteArgs>(args: SelectSubset<T, SupplyDeleteArgs<ExtArgs>>): Prisma__SupplyClient<$Result.GetResult<Prisma.$SupplyPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one Supply.
     * @param {SupplyUpdateArgs} args - Arguments to update one Supply.
     * @example
     * // Update one Supply
     * const supply = await prisma.supply.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends SupplyUpdateArgs>(args: SelectSubset<T, SupplyUpdateArgs<ExtArgs>>): Prisma__SupplyClient<$Result.GetResult<Prisma.$SupplyPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

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

    /**
     * Update zero or more Supplies and returns the data updated in the database.
     * @param {SupplyUpdateManyAndReturnArgs} args - Arguments to update many Supplies.
     * @example
     * // Update many Supplies
     * const supply = await prisma.supply.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more Supplies and only return the `id`
     * const supplyWithIdOnly = await prisma.supply.updateManyAndReturn({
     *   select: { id: true },
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    updateManyAndReturn<T extends SupplyUpdateManyAndReturnArgs>(args: SelectSubset<T, SupplyUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SupplyPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

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


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

    /**
     * Allows you to perform aggregations operations on a Supply.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SupplyAggregateArgs} 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 SupplyAggregateArgs>(args: Subset<T, SupplyAggregateArgs>): Prisma.PrismaPromise<GetSupplyAggregateType<T>>

    /**
     * Group by Supply.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SupplyGroupByArgs} 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 SupplyGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: SupplyGroupByArgs['orderBy'] }
        : { orderBy?: SupplyGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends 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 Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends 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 Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends 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 True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, SupplyGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetSupplyGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the Supply model
   */
  readonly fields: SupplyFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for Supply.
   * 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__SupplyClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    organization<T extends OrganizationDefaultArgs<ExtArgs> = {}>(args?: Subset<T, OrganizationDefaultArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * 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): $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): $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): $Utils.JsPromise<T>
  }




  /**
   * Fields of the Supply model
   */
  interface SupplyFieldRefs {
    readonly id: FieldRef<"Supply", 'String'>
    readonly name: FieldRef<"Supply", 'String'>
    readonly description: FieldRef<"Supply", 'String'>
    readonly price: FieldRef<"Supply", 'Decimal'>
    readonly quantity: FieldRef<"Supply", 'Int'>
    readonly unit: FieldRef<"Supply", 'String'>
    readonly category: FieldRef<"Supply", 'String'>
    readonly status: FieldRef<"Supply", 'String'>
    readonly date: FieldRef<"Supply", 'DateTime'>
    readonly supplier: FieldRef<"Supply", 'String'>
    readonly minStock: FieldRef<"Supply", 'Int'>
    readonly currentStock: FieldRef<"Supply", 'Int'>
    readonly imageUrl: FieldRef<"Supply", 'String'>
    readonly createdAt: FieldRef<"Supply", 'DateTime'>
    readonly updatedAt: FieldRef<"Supply", 'DateTime'>
    readonly organizationId: FieldRef<"Supply", 'String'>
  }
    

  // Custom InputTypes
  /**
   * Supply findUnique
   */
  export type SupplyFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Supply
     */
    select?: SupplySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Supply
     */
    omit?: SupplyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplyInclude<ExtArgs> | null
    /**
     * Filter, which Supply to fetch.
     */
    where: SupplyWhereUniqueInput
  }

  /**
   * Supply findUniqueOrThrow
   */
  export type SupplyFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Supply
     */
    select?: SupplySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Supply
     */
    omit?: SupplyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplyInclude<ExtArgs> | null
    /**
     * Filter, which Supply to fetch.
     */
    where: SupplyWhereUniqueInput
  }

  /**
   * Supply findFirst
   */
  export type SupplyFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Supply
     */
    select?: SupplySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Supply
     */
    omit?: SupplyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplyInclude<ExtArgs> | null
    /**
     * Filter, which Supply to fetch.
     */
    where?: SupplyWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Supplies to fetch.
     */
    orderBy?: SupplyOrderByWithRelationInput | SupplyOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Supplies.
     */
    cursor?: SupplyWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Supplies 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` Supplies.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Supplies.
     */
    distinct?: SupplyScalarFieldEnum | SupplyScalarFieldEnum[]
  }

  /**
   * Supply findFirstOrThrow
   */
  export type SupplyFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Supply
     */
    select?: SupplySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Supply
     */
    omit?: SupplyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplyInclude<ExtArgs> | null
    /**
     * Filter, which Supply to fetch.
     */
    where?: SupplyWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Supplies to fetch.
     */
    orderBy?: SupplyOrderByWithRelationInput | SupplyOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Supplies.
     */
    cursor?: SupplyWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Supplies 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` Supplies.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Supplies.
     */
    distinct?: SupplyScalarFieldEnum | SupplyScalarFieldEnum[]
  }

  /**
   * Supply findMany
   */
  export type SupplyFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Supply
     */
    select?: SupplySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Supply
     */
    omit?: SupplyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplyInclude<ExtArgs> | null
    /**
     * Filter, which Supplies to fetch.
     */
    where?: SupplyWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Supplies to fetch.
     */
    orderBy?: SupplyOrderByWithRelationInput | SupplyOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing Supplies.
     */
    cursor?: SupplyWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Supplies 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` Supplies.
     */
    skip?: number
    distinct?: SupplyScalarFieldEnum | SupplyScalarFieldEnum[]
  }

  /**
   * Supply create
   */
  export type SupplyCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Supply
     */
    select?: SupplySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Supply
     */
    omit?: SupplyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplyInclude<ExtArgs> | null
    /**
     * The data needed to create a Supply.
     */
    data: XOR<SupplyCreateInput, SupplyUncheckedCreateInput>
  }

  /**
   * Supply createMany
   */
  export type SupplyCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many Supplies.
     */
    data: SupplyCreateManyInput | SupplyCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Supply createManyAndReturn
   */
  export type SupplyCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Supply
     */
    select?: SupplySelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Supply
     */
    omit?: SupplyOmit<ExtArgs> | null
    /**
     * The data used to create many Supplies.
     */
    data: SupplyCreateManyInput | SupplyCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplyIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * Supply update
   */
  export type SupplyUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Supply
     */
    select?: SupplySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Supply
     */
    omit?: SupplyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplyInclude<ExtArgs> | null
    /**
     * The data needed to update a Supply.
     */
    data: XOR<SupplyUpdateInput, SupplyUncheckedUpdateInput>
    /**
     * Choose, which Supply to update.
     */
    where: SupplyWhereUniqueInput
  }

  /**
   * Supply updateMany
   */
  export type SupplyUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update Supplies.
     */
    data: XOR<SupplyUpdateManyMutationInput, SupplyUncheckedUpdateManyInput>
    /**
     * Filter which Supplies to update
     */
    where?: SupplyWhereInput
    /**
     * Limit how many Supplies to update.
     */
    limit?: number
  }

  /**
   * Supply updateManyAndReturn
   */
  export type SupplyUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Supply
     */
    select?: SupplySelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Supply
     */
    omit?: SupplyOmit<ExtArgs> | null
    /**
     * The data used to update Supplies.
     */
    data: XOR<SupplyUpdateManyMutationInput, SupplyUncheckedUpdateManyInput>
    /**
     * Filter which Supplies to update
     */
    where?: SupplyWhereInput
    /**
     * Limit how many Supplies to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplyIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * Supply upsert
   */
  export type SupplyUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Supply
     */
    select?: SupplySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Supply
     */
    omit?: SupplyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplyInclude<ExtArgs> | null
    /**
     * The filter to search for the Supply to update in case it exists.
     */
    where: SupplyWhereUniqueInput
    /**
     * In case the Supply found by the `where` argument doesn't exist, create a new Supply with this data.
     */
    create: XOR<SupplyCreateInput, SupplyUncheckedCreateInput>
    /**
     * In case the Supply was found with the provided `where` argument, update it with this data.
     */
    update: XOR<SupplyUpdateInput, SupplyUncheckedUpdateInput>
  }

  /**
   * Supply delete
   */
  export type SupplyDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Supply
     */
    select?: SupplySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Supply
     */
    omit?: SupplyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplyInclude<ExtArgs> | null
    /**
     * Filter which Supply to delete.
     */
    where: SupplyWhereUniqueInput
  }

  /**
   * Supply deleteMany
   */
  export type SupplyDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Supplies to delete
     */
    where?: SupplyWhereInput
    /**
     * Limit how many Supplies to delete.
     */
    limit?: number
  }

  /**
   * Supply without action
   */
  export type SupplyDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Supply
     */
    select?: SupplySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Supply
     */
    omit?: SupplyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplyInclude<ExtArgs> | null
  }


  /**
   * Model Category
   */

  export type AggregateCategory = {
    _count: CategoryCountAggregateOutputType | null
    _min: CategoryMinAggregateOutputType | null
    _max: CategoryMaxAggregateOutputType | null
  }

  export type CategoryMinAggregateOutputType = {
    id: string | null
    name: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type CategoryMaxAggregateOutputType = {
    id: string | null
    name: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type CategoryCountAggregateOutputType = {
    id: number
    name: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type CategoryMinAggregateInputType = {
    id?: true
    name?: true
    createdAt?: true
    updatedAt?: true
  }

  export type CategoryMaxAggregateInputType = {
    id?: true
    name?: true
    createdAt?: true
    updatedAt?: true
  }

  export type CategoryCountAggregateInputType = {
    id?: true
    name?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type CategoryAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Category to aggregate.
     */
    where?: CategoryWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Categories to fetch.
     */
    orderBy?: CategoryOrderByWithRelationInput | CategoryOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: CategoryWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Categories 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` Categories.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned Categories
    **/
    _count?: true | CategoryCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: CategoryMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: CategoryMaxAggregateInputType
  }

  export type GetCategoryAggregateType<T extends CategoryAggregateArgs> = {
        [P in keyof T & keyof AggregateCategory]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateCategory[P]>
      : GetScalarType<T[P], AggregateCategory[P]>
  }




  export type CategoryGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: CategoryWhereInput
    orderBy?: CategoryOrderByWithAggregationInput | CategoryOrderByWithAggregationInput[]
    by: CategoryScalarFieldEnum[] | CategoryScalarFieldEnum
    having?: CategoryScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: CategoryCountAggregateInputType | true
    _min?: CategoryMinAggregateInputType
    _max?: CategoryMaxAggregateInputType
  }

  export type CategoryGroupByOutputType = {
    id: string
    name: string
    createdAt: Date
    updatedAt: Date
    _count: CategoryCountAggregateOutputType | null
    _min: CategoryMinAggregateOutputType | null
    _max: CategoryMaxAggregateOutputType | null
  }

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


  export type CategorySelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    products?: boolean | Category$productsArgs<ExtArgs>
    _count?: boolean | CategoryCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["category"]>

  export type CategorySelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["category"]>

  export type CategorySelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["category"]>

  export type CategorySelectScalar = {
    id?: boolean
    name?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type CategoryOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "name" | "createdAt" | "updatedAt", ExtArgs["result"]["category"]>
  export type CategoryInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    products?: boolean | Category$productsArgs<ExtArgs>
    _count?: boolean | CategoryCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type CategoryIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}
  export type CategoryIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}

  export type $CategoryPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "Category"
    objects: {
      products: Prisma.$ProductPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      name: string
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["category"]>
    composites: {}
  }

  type CategoryGetPayload<S extends boolean | null | undefined | CategoryDefaultArgs> = $Result.GetResult<Prisma.$CategoryPayload, S>

  type CategoryCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<CategoryFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: CategoryCountAggregateInputType | true
    }

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

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

    /**
     * Find the first Category 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 {CategoryFindFirstArgs} args - Arguments to find a Category
     * @example
     * // Get one Category
     * const category = await prisma.category.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends CategoryFindFirstArgs>(args?: SelectSubset<T, CategoryFindFirstArgs<ExtArgs>>): Prisma__CategoryClient<$Result.GetResult<Prisma.$CategoryPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Category 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 {CategoryFindFirstOrThrowArgs} args - Arguments to find a Category
     * @example
     * // Get one Category
     * const category = await prisma.category.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends CategoryFindFirstOrThrowArgs>(args?: SelectSubset<T, CategoryFindFirstOrThrowArgs<ExtArgs>>): Prisma__CategoryClient<$Result.GetResult<Prisma.$CategoryPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more Categories 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 {CategoryFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all Categories
     * const categories = await prisma.category.findMany()
     * 
     * // Get first 10 Categories
     * const categories = await prisma.category.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const categoryWithIdOnly = await prisma.category.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends CategoryFindManyArgs>(args?: SelectSubset<T, CategoryFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$CategoryPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a Category.
     * @param {CategoryCreateArgs} args - Arguments to create a Category.
     * @example
     * // Create one Category
     * const Category = await prisma.category.create({
     *   data: {
     *     // ... data to create a Category
     *   }
     * })
     * 
     */
    create<T extends CategoryCreateArgs>(args: SelectSubset<T, CategoryCreateArgs<ExtArgs>>): Prisma__CategoryClient<$Result.GetResult<Prisma.$CategoryPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

    /**
     * Create many Categories and returns the data saved in the database.
     * @param {CategoryCreateManyAndReturnArgs} args - Arguments to create many Categories.
     * @example
     * // Create many Categories
     * const category = await prisma.category.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many Categories and only return the `id`
     * const categoryWithIdOnly = await prisma.category.createManyAndReturn({
     *   select: { id: true },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    createManyAndReturn<T extends CategoryCreateManyAndReturnArgs>(args?: SelectSubset<T, CategoryCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$CategoryPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a Category.
     * @param {CategoryDeleteArgs} args - Arguments to delete one Category.
     * @example
     * // Delete one Category
     * const Category = await prisma.category.delete({
     *   where: {
     *     // ... filter to delete one Category
     *   }
     * })
     * 
     */
    delete<T extends CategoryDeleteArgs>(args: SelectSubset<T, CategoryDeleteArgs<ExtArgs>>): Prisma__CategoryClient<$Result.GetResult<Prisma.$CategoryPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one Category.
     * @param {CategoryUpdateArgs} args - Arguments to update one Category.
     * @example
     * // Update one Category
     * const category = await prisma.category.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends CategoryUpdateArgs>(args: SelectSubset<T, CategoryUpdateArgs<ExtArgs>>): Prisma__CategoryClient<$Result.GetResult<Prisma.$CategoryPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

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

    /**
     * Update zero or more Categories and returns the data updated in the database.
     * @param {CategoryUpdateManyAndReturnArgs} args - Arguments to update many Categories.
     * @example
     * // Update many Categories
     * const category = await prisma.category.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more Categories and only return the `id`
     * const categoryWithIdOnly = await prisma.category.updateManyAndReturn({
     *   select: { id: true },
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    updateManyAndReturn<T extends CategoryUpdateManyAndReturnArgs>(args: SelectSubset<T, CategoryUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$CategoryPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

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


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

    /**
     * Allows you to perform aggregations operations on a Category.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {CategoryAggregateArgs} 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 CategoryAggregateArgs>(args: Subset<T, CategoryAggregateArgs>): Prisma.PrismaPromise<GetCategoryAggregateType<T>>

    /**
     * Group by Category.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {CategoryGroupByArgs} 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 CategoryGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: CategoryGroupByArgs['orderBy'] }
        : { orderBy?: CategoryGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends 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 Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends 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 Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends 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 True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, CategoryGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetCategoryGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the Category model
   */
  readonly fields: CategoryFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for Category.
   * 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__CategoryClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    products<T extends Category$productsArgs<ExtArgs> = {}>(args?: Subset<T, Category$productsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ProductPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * 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): $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): $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): $Utils.JsPromise<T>
  }




  /**
   * Fields of the Category model
   */
  interface CategoryFieldRefs {
    readonly id: FieldRef<"Category", 'String'>
    readonly name: FieldRef<"Category", 'String'>
    readonly createdAt: FieldRef<"Category", 'DateTime'>
    readonly updatedAt: FieldRef<"Category", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * Category findUnique
   */
  export type CategoryFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Category
     */
    select?: CategorySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Category
     */
    omit?: CategoryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CategoryInclude<ExtArgs> | null
    /**
     * Filter, which Category to fetch.
     */
    where: CategoryWhereUniqueInput
  }

  /**
   * Category findUniqueOrThrow
   */
  export type CategoryFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Category
     */
    select?: CategorySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Category
     */
    omit?: CategoryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CategoryInclude<ExtArgs> | null
    /**
     * Filter, which Category to fetch.
     */
    where: CategoryWhereUniqueInput
  }

  /**
   * Category findFirst
   */
  export type CategoryFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Category
     */
    select?: CategorySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Category
     */
    omit?: CategoryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CategoryInclude<ExtArgs> | null
    /**
     * Filter, which Category to fetch.
     */
    where?: CategoryWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Categories to fetch.
     */
    orderBy?: CategoryOrderByWithRelationInput | CategoryOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Categories.
     */
    cursor?: CategoryWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Categories 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` Categories.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Categories.
     */
    distinct?: CategoryScalarFieldEnum | CategoryScalarFieldEnum[]
  }

  /**
   * Category findFirstOrThrow
   */
  export type CategoryFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Category
     */
    select?: CategorySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Category
     */
    omit?: CategoryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CategoryInclude<ExtArgs> | null
    /**
     * Filter, which Category to fetch.
     */
    where?: CategoryWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Categories to fetch.
     */
    orderBy?: CategoryOrderByWithRelationInput | CategoryOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Categories.
     */
    cursor?: CategoryWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Categories 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` Categories.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Categories.
     */
    distinct?: CategoryScalarFieldEnum | CategoryScalarFieldEnum[]
  }

  /**
   * Category findMany
   */
  export type CategoryFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Category
     */
    select?: CategorySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Category
     */
    omit?: CategoryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CategoryInclude<ExtArgs> | null
    /**
     * Filter, which Categories to fetch.
     */
    where?: CategoryWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Categories to fetch.
     */
    orderBy?: CategoryOrderByWithRelationInput | CategoryOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing Categories.
     */
    cursor?: CategoryWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Categories 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` Categories.
     */
    skip?: number
    distinct?: CategoryScalarFieldEnum | CategoryScalarFieldEnum[]
  }

  /**
   * Category create
   */
  export type CategoryCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Category
     */
    select?: CategorySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Category
     */
    omit?: CategoryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CategoryInclude<ExtArgs> | null
    /**
     * The data needed to create a Category.
     */
    data: XOR<CategoryCreateInput, CategoryUncheckedCreateInput>
  }

  /**
   * Category createMany
   */
  export type CategoryCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many Categories.
     */
    data: CategoryCreateManyInput | CategoryCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Category createManyAndReturn
   */
  export type CategoryCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Category
     */
    select?: CategorySelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Category
     */
    omit?: CategoryOmit<ExtArgs> | null
    /**
     * The data used to create many Categories.
     */
    data: CategoryCreateManyInput | CategoryCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Category update
   */
  export type CategoryUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Category
     */
    select?: CategorySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Category
     */
    omit?: CategoryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CategoryInclude<ExtArgs> | null
    /**
     * The data needed to update a Category.
     */
    data: XOR<CategoryUpdateInput, CategoryUncheckedUpdateInput>
    /**
     * Choose, which Category to update.
     */
    where: CategoryWhereUniqueInput
  }

  /**
   * Category updateMany
   */
  export type CategoryUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update Categories.
     */
    data: XOR<CategoryUpdateManyMutationInput, CategoryUncheckedUpdateManyInput>
    /**
     * Filter which Categories to update
     */
    where?: CategoryWhereInput
    /**
     * Limit how many Categories to update.
     */
    limit?: number
  }

  /**
   * Category updateManyAndReturn
   */
  export type CategoryUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Category
     */
    select?: CategorySelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Category
     */
    omit?: CategoryOmit<ExtArgs> | null
    /**
     * The data used to update Categories.
     */
    data: XOR<CategoryUpdateManyMutationInput, CategoryUncheckedUpdateManyInput>
    /**
     * Filter which Categories to update
     */
    where?: CategoryWhereInput
    /**
     * Limit how many Categories to update.
     */
    limit?: number
  }

  /**
   * Category upsert
   */
  export type CategoryUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Category
     */
    select?: CategorySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Category
     */
    omit?: CategoryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CategoryInclude<ExtArgs> | null
    /**
     * The filter to search for the Category to update in case it exists.
     */
    where: CategoryWhereUniqueInput
    /**
     * In case the Category found by the `where` argument doesn't exist, create a new Category with this data.
     */
    create: XOR<CategoryCreateInput, CategoryUncheckedCreateInput>
    /**
     * In case the Category was found with the provided `where` argument, update it with this data.
     */
    update: XOR<CategoryUpdateInput, CategoryUncheckedUpdateInput>
  }

  /**
   * Category delete
   */
  export type CategoryDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Category
     */
    select?: CategorySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Category
     */
    omit?: CategoryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CategoryInclude<ExtArgs> | null
    /**
     * Filter which Category to delete.
     */
    where: CategoryWhereUniqueInput
  }

  /**
   * Category deleteMany
   */
  export type CategoryDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Categories to delete
     */
    where?: CategoryWhereInput
    /**
     * Limit how many Categories to delete.
     */
    limit?: number
  }

  /**
   * Category.products
   */
  export type Category$productsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Product
     */
    select?: ProductSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Product
     */
    omit?: ProductOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ProductInclude<ExtArgs> | null
    where?: ProductWhereInput
    orderBy?: ProductOrderByWithRelationInput | ProductOrderByWithRelationInput[]
    cursor?: ProductWhereUniqueInput
    take?: number
    skip?: number
    distinct?: ProductScalarFieldEnum | ProductScalarFieldEnum[]
  }

  /**
   * Category without action
   */
  export type CategoryDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Category
     */
    select?: CategorySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Category
     */
    omit?: CategoryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CategoryInclude<ExtArgs> | null
  }


  /**
   * Model Product
   */

  export type AggregateProduct = {
    _count: ProductCountAggregateOutputType | null
    _avg: ProductAvgAggregateOutputType | null
    _sum: ProductSumAggregateOutputType | null
    _min: ProductMinAggregateOutputType | null
    _max: ProductMaxAggregateOutputType | null
  }

  export type ProductAvgAggregateOutputType = {
    price: Decimal | null
    quantity: number | null
    weight: Decimal | null
  }

  export type ProductSumAggregateOutputType = {
    price: Decimal | null
    quantity: number | null
    weight: Decimal | null
  }

  export type ProductMinAggregateOutputType = {
    id: string | null
    name: string | null
    article: string | null
    description: string | null
    price: Decimal | null
    quantity: number | null
    categoryId: string | null
    brand: string | null
    color: string | null
    size: string | null
    weight: Decimal | null
    dimensions: string | null
    material: string | null
    mainImage: string | null
    isActive: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
    organizationId: string | null
  }

  export type ProductMaxAggregateOutputType = {
    id: string | null
    name: string | null
    article: string | null
    description: string | null
    price: Decimal | null
    quantity: number | null
    categoryId: string | null
    brand: string | null
    color: string | null
    size: string | null
    weight: Decimal | null
    dimensions: string | null
    material: string | null
    mainImage: string | null
    isActive: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
    organizationId: string | null
  }

  export type ProductCountAggregateOutputType = {
    id: number
    name: number
    article: number
    description: number
    price: number
    quantity: number
    categoryId: number
    brand: number
    color: number
    size: number
    weight: number
    dimensions: number
    material: number
    images: number
    mainImage: number
    isActive: number
    createdAt: number
    updatedAt: number
    organizationId: number
    _all: number
  }


  export type ProductAvgAggregateInputType = {
    price?: true
    quantity?: true
    weight?: true
  }

  export type ProductSumAggregateInputType = {
    price?: true
    quantity?: true
    weight?: true
  }

  export type ProductMinAggregateInputType = {
    id?: true
    name?: true
    article?: true
    description?: true
    price?: true
    quantity?: true
    categoryId?: true
    brand?: true
    color?: true
    size?: true
    weight?: true
    dimensions?: true
    material?: true
    mainImage?: true
    isActive?: true
    createdAt?: true
    updatedAt?: true
    organizationId?: true
  }

  export type ProductMaxAggregateInputType = {
    id?: true
    name?: true
    article?: true
    description?: true
    price?: true
    quantity?: true
    categoryId?: true
    brand?: true
    color?: true
    size?: true
    weight?: true
    dimensions?: true
    material?: true
    mainImage?: true
    isActive?: true
    createdAt?: true
    updatedAt?: true
    organizationId?: true
  }

  export type ProductCountAggregateInputType = {
    id?: true
    name?: true
    article?: true
    description?: true
    price?: true
    quantity?: true
    categoryId?: true
    brand?: true
    color?: true
    size?: true
    weight?: true
    dimensions?: true
    material?: true
    images?: true
    mainImage?: true
    isActive?: true
    createdAt?: true
    updatedAt?: true
    organizationId?: true
    _all?: true
  }

  export type ProductAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Product to aggregate.
     */
    where?: ProductWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Products to fetch.
     */
    orderBy?: ProductOrderByWithRelationInput | ProductOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: ProductWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Products 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` Products.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned Products
    **/
    _count?: true | ProductCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: ProductAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: ProductSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: ProductMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: ProductMaxAggregateInputType
  }

  export type GetProductAggregateType<T extends ProductAggregateArgs> = {
        [P in keyof T & keyof AggregateProduct]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateProduct[P]>
      : GetScalarType<T[P], AggregateProduct[P]>
  }




  export type ProductGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ProductWhereInput
    orderBy?: ProductOrderByWithAggregationInput | ProductOrderByWithAggregationInput[]
    by: ProductScalarFieldEnum[] | ProductScalarFieldEnum
    having?: ProductScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: ProductCountAggregateInputType | true
    _avg?: ProductAvgAggregateInputType
    _sum?: ProductSumAggregateInputType
    _min?: ProductMinAggregateInputType
    _max?: ProductMaxAggregateInputType
  }

  export type ProductGroupByOutputType = {
    id: string
    name: string
    article: string
    description: string | null
    price: Decimal
    quantity: number
    categoryId: string | null
    brand: string | null
    color: string | null
    size: string | null
    weight: Decimal | null
    dimensions: string | null
    material: string | null
    images: JsonValue
    mainImage: string | null
    isActive: boolean
    createdAt: Date
    updatedAt: Date
    organizationId: string
    _count: ProductCountAggregateOutputType | null
    _avg: ProductAvgAggregateOutputType | null
    _sum: ProductSumAggregateOutputType | null
    _min: ProductMinAggregateOutputType | null
    _max: ProductMaxAggregateOutputType | null
  }

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


  export type ProductSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    article?: boolean
    description?: boolean
    price?: boolean
    quantity?: boolean
    categoryId?: boolean
    brand?: boolean
    color?: boolean
    size?: boolean
    weight?: boolean
    dimensions?: boolean
    material?: boolean
    images?: boolean
    mainImage?: boolean
    isActive?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    organizationId?: boolean
    cartItems?: boolean | Product$cartItemsArgs<ExtArgs>
    favorites?: boolean | Product$favoritesArgs<ExtArgs>
    supplyOrderItems?: boolean | Product$supplyOrderItemsArgs<ExtArgs>
    category?: boolean | Product$categoryArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
    _count?: boolean | ProductCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["product"]>

  export type ProductSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    article?: boolean
    description?: boolean
    price?: boolean
    quantity?: boolean
    categoryId?: boolean
    brand?: boolean
    color?: boolean
    size?: boolean
    weight?: boolean
    dimensions?: boolean
    material?: boolean
    images?: boolean
    mainImage?: boolean
    isActive?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    organizationId?: boolean
    category?: boolean | Product$categoryArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["product"]>

  export type ProductSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    article?: boolean
    description?: boolean
    price?: boolean
    quantity?: boolean
    categoryId?: boolean
    brand?: boolean
    color?: boolean
    size?: boolean
    weight?: boolean
    dimensions?: boolean
    material?: boolean
    images?: boolean
    mainImage?: boolean
    isActive?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    organizationId?: boolean
    category?: boolean | Product$categoryArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["product"]>

  export type ProductSelectScalar = {
    id?: boolean
    name?: boolean
    article?: boolean
    description?: boolean
    price?: boolean
    quantity?: boolean
    categoryId?: boolean
    brand?: boolean
    color?: boolean
    size?: boolean
    weight?: boolean
    dimensions?: boolean
    material?: boolean
    images?: boolean
    mainImage?: boolean
    isActive?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    organizationId?: boolean
  }

  export type ProductOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "name" | "article" | "description" | "price" | "quantity" | "categoryId" | "brand" | "color" | "size" | "weight" | "dimensions" | "material" | "images" | "mainImage" | "isActive" | "createdAt" | "updatedAt" | "organizationId", ExtArgs["result"]["product"]>
  export type ProductInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    cartItems?: boolean | Product$cartItemsArgs<ExtArgs>
    favorites?: boolean | Product$favoritesArgs<ExtArgs>
    supplyOrderItems?: boolean | Product$supplyOrderItemsArgs<ExtArgs>
    category?: boolean | Product$categoryArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
    _count?: boolean | ProductCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type ProductIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    category?: boolean | Product$categoryArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }
  export type ProductIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    category?: boolean | Product$categoryArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }

  export type $ProductPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "Product"
    objects: {
      cartItems: Prisma.$CartItemPayload<ExtArgs>[]
      favorites: Prisma.$FavoritesPayload<ExtArgs>[]
      supplyOrderItems: Prisma.$SupplyOrderItemPayload<ExtArgs>[]
      category: Prisma.$CategoryPayload<ExtArgs> | null
      organization: Prisma.$OrganizationPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      name: string
      article: string
      description: string | null
      price: Prisma.Decimal
      quantity: number
      categoryId: string | null
      brand: string | null
      color: string | null
      size: string | null
      weight: Prisma.Decimal | null
      dimensions: string | null
      material: string | null
      images: Prisma.JsonValue
      mainImage: string | null
      isActive: boolean
      createdAt: Date
      updatedAt: Date
      organizationId: string
    }, ExtArgs["result"]["product"]>
    composites: {}
  }

  type ProductGetPayload<S extends boolean | null | undefined | ProductDefaultArgs> = $Result.GetResult<Prisma.$ProductPayload, S>

  type ProductCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<ProductFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: ProductCountAggregateInputType | true
    }

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

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

    /**
     * Find the first Product 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 {ProductFindFirstArgs} args - Arguments to find a Product
     * @example
     * // Get one Product
     * const product = await prisma.product.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends ProductFindFirstArgs>(args?: SelectSubset<T, ProductFindFirstArgs<ExtArgs>>): Prisma__ProductClient<$Result.GetResult<Prisma.$ProductPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Product 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 {ProductFindFirstOrThrowArgs} args - Arguments to find a Product
     * @example
     * // Get one Product
     * const product = await prisma.product.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends ProductFindFirstOrThrowArgs>(args?: SelectSubset<T, ProductFindFirstOrThrowArgs<ExtArgs>>): Prisma__ProductClient<$Result.GetResult<Prisma.$ProductPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more Products 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 {ProductFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all Products
     * const products = await prisma.product.findMany()
     * 
     * // Get first 10 Products
     * const products = await prisma.product.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const productWithIdOnly = await prisma.product.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends ProductFindManyArgs>(args?: SelectSubset<T, ProductFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ProductPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a Product.
     * @param {ProductCreateArgs} args - Arguments to create a Product.
     * @example
     * // Create one Product
     * const Product = await prisma.product.create({
     *   data: {
     *     // ... data to create a Product
     *   }
     * })
     * 
     */
    create<T extends ProductCreateArgs>(args: SelectSubset<T, ProductCreateArgs<ExtArgs>>): Prisma__ProductClient<$Result.GetResult<Prisma.$ProductPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

    /**
     * Create many Products and returns the data saved in the database.
     * @param {ProductCreateManyAndReturnArgs} args - Arguments to create many Products.
     * @example
     * // Create many Products
     * const product = await prisma.product.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many Products and only return the `id`
     * const productWithIdOnly = await prisma.product.createManyAndReturn({
     *   select: { id: true },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    createManyAndReturn<T extends ProductCreateManyAndReturnArgs>(args?: SelectSubset<T, ProductCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ProductPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a Product.
     * @param {ProductDeleteArgs} args - Arguments to delete one Product.
     * @example
     * // Delete one Product
     * const Product = await prisma.product.delete({
     *   where: {
     *     // ... filter to delete one Product
     *   }
     * })
     * 
     */
    delete<T extends ProductDeleteArgs>(args: SelectSubset<T, ProductDeleteArgs<ExtArgs>>): Prisma__ProductClient<$Result.GetResult<Prisma.$ProductPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one Product.
     * @param {ProductUpdateArgs} args - Arguments to update one Product.
     * @example
     * // Update one Product
     * const product = await prisma.product.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends ProductUpdateArgs>(args: SelectSubset<T, ProductUpdateArgs<ExtArgs>>): Prisma__ProductClient<$Result.GetResult<Prisma.$ProductPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

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

    /**
     * Update zero or more Products and returns the data updated in the database.
     * @param {ProductUpdateManyAndReturnArgs} args - Arguments to update many Products.
     * @example
     * // Update many Products
     * const product = await prisma.product.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more Products and only return the `id`
     * const productWithIdOnly = await prisma.product.updateManyAndReturn({
     *   select: { id: true },
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    updateManyAndReturn<T extends ProductUpdateManyAndReturnArgs>(args: SelectSubset<T, ProductUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ProductPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

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


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

    /**
     * Allows you to perform aggregations operations on a Product.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ProductAggregateArgs} 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 ProductAggregateArgs>(args: Subset<T, ProductAggregateArgs>): Prisma.PrismaPromise<GetProductAggregateType<T>>

    /**
     * Group by Product.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ProductGroupByArgs} 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 ProductGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: ProductGroupByArgs['orderBy'] }
        : { orderBy?: ProductGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends 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 Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends 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 Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends 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 True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, ProductGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetProductGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the Product model
   */
  readonly fields: ProductFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for Product.
   * 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__ProductClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    cartItems<T extends Product$cartItemsArgs<ExtArgs> = {}>(args?: Subset<T, Product$cartItemsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$CartItemPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    favorites<T extends Product$favoritesArgs<ExtArgs> = {}>(args?: Subset<T, Product$favoritesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FavoritesPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    supplyOrderItems<T extends Product$supplyOrderItemsArgs<ExtArgs> = {}>(args?: Subset<T, Product$supplyOrderItemsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SupplyOrderItemPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    category<T extends Product$categoryArgs<ExtArgs> = {}>(args?: Subset<T, Product$categoryArgs<ExtArgs>>): Prisma__CategoryClient<$Result.GetResult<Prisma.$CategoryPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    organization<T extends OrganizationDefaultArgs<ExtArgs> = {}>(args?: Subset<T, OrganizationDefaultArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * 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): $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): $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): $Utils.JsPromise<T>
  }




  /**
   * Fields of the Product model
   */
  interface ProductFieldRefs {
    readonly id: FieldRef<"Product", 'String'>
    readonly name: FieldRef<"Product", 'String'>
    readonly article: FieldRef<"Product", 'String'>
    readonly description: FieldRef<"Product", 'String'>
    readonly price: FieldRef<"Product", 'Decimal'>
    readonly quantity: FieldRef<"Product", 'Int'>
    readonly categoryId: FieldRef<"Product", 'String'>
    readonly brand: FieldRef<"Product", 'String'>
    readonly color: FieldRef<"Product", 'String'>
    readonly size: FieldRef<"Product", 'String'>
    readonly weight: FieldRef<"Product", 'Decimal'>
    readonly dimensions: FieldRef<"Product", 'String'>
    readonly material: FieldRef<"Product", 'String'>
    readonly images: FieldRef<"Product", 'Json'>
    readonly mainImage: FieldRef<"Product", 'String'>
    readonly isActive: FieldRef<"Product", 'Boolean'>
    readonly createdAt: FieldRef<"Product", 'DateTime'>
    readonly updatedAt: FieldRef<"Product", 'DateTime'>
    readonly organizationId: FieldRef<"Product", 'String'>
  }
    

  // Custom InputTypes
  /**
   * Product findUnique
   */
  export type ProductFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Product
     */
    select?: ProductSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Product
     */
    omit?: ProductOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ProductInclude<ExtArgs> | null
    /**
     * Filter, which Product to fetch.
     */
    where: ProductWhereUniqueInput
  }

  /**
   * Product findUniqueOrThrow
   */
  export type ProductFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Product
     */
    select?: ProductSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Product
     */
    omit?: ProductOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ProductInclude<ExtArgs> | null
    /**
     * Filter, which Product to fetch.
     */
    where: ProductWhereUniqueInput
  }

  /**
   * Product findFirst
   */
  export type ProductFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Product
     */
    select?: ProductSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Product
     */
    omit?: ProductOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ProductInclude<ExtArgs> | null
    /**
     * Filter, which Product to fetch.
     */
    where?: ProductWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Products to fetch.
     */
    orderBy?: ProductOrderByWithRelationInput | ProductOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Products.
     */
    cursor?: ProductWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Products 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` Products.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Products.
     */
    distinct?: ProductScalarFieldEnum | ProductScalarFieldEnum[]
  }

  /**
   * Product findFirstOrThrow
   */
  export type ProductFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Product
     */
    select?: ProductSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Product
     */
    omit?: ProductOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ProductInclude<ExtArgs> | null
    /**
     * Filter, which Product to fetch.
     */
    where?: ProductWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Products to fetch.
     */
    orderBy?: ProductOrderByWithRelationInput | ProductOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Products.
     */
    cursor?: ProductWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Products 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` Products.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Products.
     */
    distinct?: ProductScalarFieldEnum | ProductScalarFieldEnum[]
  }

  /**
   * Product findMany
   */
  export type ProductFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Product
     */
    select?: ProductSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Product
     */
    omit?: ProductOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ProductInclude<ExtArgs> | null
    /**
     * Filter, which Products to fetch.
     */
    where?: ProductWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Products to fetch.
     */
    orderBy?: ProductOrderByWithRelationInput | ProductOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing Products.
     */
    cursor?: ProductWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Products 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` Products.
     */
    skip?: number
    distinct?: ProductScalarFieldEnum | ProductScalarFieldEnum[]
  }

  /**
   * Product create
   */
  export type ProductCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Product
     */
    select?: ProductSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Product
     */
    omit?: ProductOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ProductInclude<ExtArgs> | null
    /**
     * The data needed to create a Product.
     */
    data: XOR<ProductCreateInput, ProductUncheckedCreateInput>
  }

  /**
   * Product createMany
   */
  export type ProductCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many Products.
     */
    data: ProductCreateManyInput | ProductCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Product createManyAndReturn
   */
  export type ProductCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Product
     */
    select?: ProductSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Product
     */
    omit?: ProductOmit<ExtArgs> | null
    /**
     * The data used to create many Products.
     */
    data: ProductCreateManyInput | ProductCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ProductIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * Product update
   */
  export type ProductUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Product
     */
    select?: ProductSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Product
     */
    omit?: ProductOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ProductInclude<ExtArgs> | null
    /**
     * The data needed to update a Product.
     */
    data: XOR<ProductUpdateInput, ProductUncheckedUpdateInput>
    /**
     * Choose, which Product to update.
     */
    where: ProductWhereUniqueInput
  }

  /**
   * Product updateMany
   */
  export type ProductUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update Products.
     */
    data: XOR<ProductUpdateManyMutationInput, ProductUncheckedUpdateManyInput>
    /**
     * Filter which Products to update
     */
    where?: ProductWhereInput
    /**
     * Limit how many Products to update.
     */
    limit?: number
  }

  /**
   * Product updateManyAndReturn
   */
  export type ProductUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Product
     */
    select?: ProductSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Product
     */
    omit?: ProductOmit<ExtArgs> | null
    /**
     * The data used to update Products.
     */
    data: XOR<ProductUpdateManyMutationInput, ProductUncheckedUpdateManyInput>
    /**
     * Filter which Products to update
     */
    where?: ProductWhereInput
    /**
     * Limit how many Products to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ProductIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * Product upsert
   */
  export type ProductUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Product
     */
    select?: ProductSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Product
     */
    omit?: ProductOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ProductInclude<ExtArgs> | null
    /**
     * The filter to search for the Product to update in case it exists.
     */
    where: ProductWhereUniqueInput
    /**
     * In case the Product found by the `where` argument doesn't exist, create a new Product with this data.
     */
    create: XOR<ProductCreateInput, ProductUncheckedCreateInput>
    /**
     * In case the Product was found with the provided `where` argument, update it with this data.
     */
    update: XOR<ProductUpdateInput, ProductUncheckedUpdateInput>
  }

  /**
   * Product delete
   */
  export type ProductDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Product
     */
    select?: ProductSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Product
     */
    omit?: ProductOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ProductInclude<ExtArgs> | null
    /**
     * Filter which Product to delete.
     */
    where: ProductWhereUniqueInput
  }

  /**
   * Product deleteMany
   */
  export type ProductDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Products to delete
     */
    where?: ProductWhereInput
    /**
     * Limit how many Products to delete.
     */
    limit?: number
  }

  /**
   * Product.cartItems
   */
  export type Product$cartItemsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CartItem
     */
    select?: CartItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CartItem
     */
    omit?: CartItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CartItemInclude<ExtArgs> | null
    where?: CartItemWhereInput
    orderBy?: CartItemOrderByWithRelationInput | CartItemOrderByWithRelationInput[]
    cursor?: CartItemWhereUniqueInput
    take?: number
    skip?: number
    distinct?: CartItemScalarFieldEnum | CartItemScalarFieldEnum[]
  }

  /**
   * Product.favorites
   */
  export type Product$favoritesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Favorites
     */
    select?: FavoritesSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Favorites
     */
    omit?: FavoritesOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FavoritesInclude<ExtArgs> | null
    where?: FavoritesWhereInput
    orderBy?: FavoritesOrderByWithRelationInput | FavoritesOrderByWithRelationInput[]
    cursor?: FavoritesWhereUniqueInput
    take?: number
    skip?: number
    distinct?: FavoritesScalarFieldEnum | FavoritesScalarFieldEnum[]
  }

  /**
   * Product.supplyOrderItems
   */
  export type Product$supplyOrderItemsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplyOrderItem
     */
    select?: SupplyOrderItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SupplyOrderItem
     */
    omit?: SupplyOrderItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplyOrderItemInclude<ExtArgs> | null
    where?: SupplyOrderItemWhereInput
    orderBy?: SupplyOrderItemOrderByWithRelationInput | SupplyOrderItemOrderByWithRelationInput[]
    cursor?: SupplyOrderItemWhereUniqueInput
    take?: number
    skip?: number
    distinct?: SupplyOrderItemScalarFieldEnum | SupplyOrderItemScalarFieldEnum[]
  }

  /**
   * Product.category
   */
  export type Product$categoryArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Category
     */
    select?: CategorySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Category
     */
    omit?: CategoryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CategoryInclude<ExtArgs> | null
    where?: CategoryWhereInput
  }

  /**
   * Product without action
   */
  export type ProductDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Product
     */
    select?: ProductSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Product
     */
    omit?: ProductOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ProductInclude<ExtArgs> | null
  }


  /**
   * Model Cart
   */

  export type AggregateCart = {
    _count: CartCountAggregateOutputType | null
    _min: CartMinAggregateOutputType | null
    _max: CartMaxAggregateOutputType | null
  }

  export type CartMinAggregateOutputType = {
    id: string | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type CartMaxAggregateOutputType = {
    id: string | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type CartCountAggregateOutputType = {
    id: number
    organizationId: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type CartMinAggregateInputType = {
    id?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
  }

  export type CartMaxAggregateInputType = {
    id?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
  }

  export type CartCountAggregateInputType = {
    id?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type CartAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Cart to aggregate.
     */
    where?: CartWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Carts to fetch.
     */
    orderBy?: CartOrderByWithRelationInput | CartOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: CartWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Carts 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` Carts.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned Carts
    **/
    _count?: true | CartCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: CartMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: CartMaxAggregateInputType
  }

  export type GetCartAggregateType<T extends CartAggregateArgs> = {
        [P in keyof T & keyof AggregateCart]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateCart[P]>
      : GetScalarType<T[P], AggregateCart[P]>
  }




  export type CartGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: CartWhereInput
    orderBy?: CartOrderByWithAggregationInput | CartOrderByWithAggregationInput[]
    by: CartScalarFieldEnum[] | CartScalarFieldEnum
    having?: CartScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: CartCountAggregateInputType | true
    _min?: CartMinAggregateInputType
    _max?: CartMaxAggregateInputType
  }

  export type CartGroupByOutputType = {
    id: string
    organizationId: string
    createdAt: Date
    updatedAt: Date
    _count: CartCountAggregateOutputType | null
    _min: CartMinAggregateOutputType | null
    _max: CartMaxAggregateOutputType | null
  }

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


  export type CartSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    items?: boolean | Cart$itemsArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
    _count?: boolean | CartCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["cart"]>

  export type CartSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["cart"]>

  export type CartSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["cart"]>

  export type CartSelectScalar = {
    id?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type CartOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "organizationId" | "createdAt" | "updatedAt", ExtArgs["result"]["cart"]>
  export type CartInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    items?: boolean | Cart$itemsArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
    _count?: boolean | CartCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type CartIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }
  export type CartIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }

  export type $CartPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "Cart"
    objects: {
      items: Prisma.$CartItemPayload<ExtArgs>[]
      organization: Prisma.$OrganizationPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      organizationId: string
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["cart"]>
    composites: {}
  }

  type CartGetPayload<S extends boolean | null | undefined | CartDefaultArgs> = $Result.GetResult<Prisma.$CartPayload, S>

  type CartCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<CartFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: CartCountAggregateInputType | true
    }

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

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

    /**
     * Find the first Cart 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 {CartFindFirstArgs} args - Arguments to find a Cart
     * @example
     * // Get one Cart
     * const cart = await prisma.cart.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends CartFindFirstArgs>(args?: SelectSubset<T, CartFindFirstArgs<ExtArgs>>): Prisma__CartClient<$Result.GetResult<Prisma.$CartPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Cart 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 {CartFindFirstOrThrowArgs} args - Arguments to find a Cart
     * @example
     * // Get one Cart
     * const cart = await prisma.cart.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends CartFindFirstOrThrowArgs>(args?: SelectSubset<T, CartFindFirstOrThrowArgs<ExtArgs>>): Prisma__CartClient<$Result.GetResult<Prisma.$CartPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more Carts 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 {CartFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all Carts
     * const carts = await prisma.cart.findMany()
     * 
     * // Get first 10 Carts
     * const carts = await prisma.cart.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const cartWithIdOnly = await prisma.cart.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends CartFindManyArgs>(args?: SelectSubset<T, CartFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$CartPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a Cart.
     * @param {CartCreateArgs} args - Arguments to create a Cart.
     * @example
     * // Create one Cart
     * const Cart = await prisma.cart.create({
     *   data: {
     *     // ... data to create a Cart
     *   }
     * })
     * 
     */
    create<T extends CartCreateArgs>(args: SelectSubset<T, CartCreateArgs<ExtArgs>>): Prisma__CartClient<$Result.GetResult<Prisma.$CartPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

    /**
     * Create many Carts and returns the data saved in the database.
     * @param {CartCreateManyAndReturnArgs} args - Arguments to create many Carts.
     * @example
     * // Create many Carts
     * const cart = await prisma.cart.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many Carts and only return the `id`
     * const cartWithIdOnly = await prisma.cart.createManyAndReturn({
     *   select: { id: true },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    createManyAndReturn<T extends CartCreateManyAndReturnArgs>(args?: SelectSubset<T, CartCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$CartPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a Cart.
     * @param {CartDeleteArgs} args - Arguments to delete one Cart.
     * @example
     * // Delete one Cart
     * const Cart = await prisma.cart.delete({
     *   where: {
     *     // ... filter to delete one Cart
     *   }
     * })
     * 
     */
    delete<T extends CartDeleteArgs>(args: SelectSubset<T, CartDeleteArgs<ExtArgs>>): Prisma__CartClient<$Result.GetResult<Prisma.$CartPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one Cart.
     * @param {CartUpdateArgs} args - Arguments to update one Cart.
     * @example
     * // Update one Cart
     * const cart = await prisma.cart.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends CartUpdateArgs>(args: SelectSubset<T, CartUpdateArgs<ExtArgs>>): Prisma__CartClient<$Result.GetResult<Prisma.$CartPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

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

    /**
     * Update zero or more Carts and returns the data updated in the database.
     * @param {CartUpdateManyAndReturnArgs} args - Arguments to update many Carts.
     * @example
     * // Update many Carts
     * const cart = await prisma.cart.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more Carts and only return the `id`
     * const cartWithIdOnly = await prisma.cart.updateManyAndReturn({
     *   select: { id: true },
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    updateManyAndReturn<T extends CartUpdateManyAndReturnArgs>(args: SelectSubset<T, CartUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$CartPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

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


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

    /**
     * Allows you to perform aggregations operations on a Cart.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {CartAggregateArgs} 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 CartAggregateArgs>(args: Subset<T, CartAggregateArgs>): Prisma.PrismaPromise<GetCartAggregateType<T>>

    /**
     * Group by Cart.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {CartGroupByArgs} 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 CartGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: CartGroupByArgs['orderBy'] }
        : { orderBy?: CartGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends 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 Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends 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 Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends 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 True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, CartGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetCartGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the Cart model
   */
  readonly fields: CartFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for Cart.
   * 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__CartClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    items<T extends Cart$itemsArgs<ExtArgs> = {}>(args?: Subset<T, Cart$itemsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$CartItemPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    organization<T extends OrganizationDefaultArgs<ExtArgs> = {}>(args?: Subset<T, OrganizationDefaultArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * 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): $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): $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): $Utils.JsPromise<T>
  }




  /**
   * Fields of the Cart model
   */
  interface CartFieldRefs {
    readonly id: FieldRef<"Cart", 'String'>
    readonly organizationId: FieldRef<"Cart", 'String'>
    readonly createdAt: FieldRef<"Cart", 'DateTime'>
    readonly updatedAt: FieldRef<"Cart", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * Cart findUnique
   */
  export type CartFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Cart
     */
    select?: CartSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Cart
     */
    omit?: CartOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CartInclude<ExtArgs> | null
    /**
     * Filter, which Cart to fetch.
     */
    where: CartWhereUniqueInput
  }

  /**
   * Cart findUniqueOrThrow
   */
  export type CartFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Cart
     */
    select?: CartSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Cart
     */
    omit?: CartOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CartInclude<ExtArgs> | null
    /**
     * Filter, which Cart to fetch.
     */
    where: CartWhereUniqueInput
  }

  /**
   * Cart findFirst
   */
  export type CartFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Cart
     */
    select?: CartSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Cart
     */
    omit?: CartOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CartInclude<ExtArgs> | null
    /**
     * Filter, which Cart to fetch.
     */
    where?: CartWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Carts to fetch.
     */
    orderBy?: CartOrderByWithRelationInput | CartOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Carts.
     */
    cursor?: CartWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Carts 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` Carts.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Carts.
     */
    distinct?: CartScalarFieldEnum | CartScalarFieldEnum[]
  }

  /**
   * Cart findFirstOrThrow
   */
  export type CartFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Cart
     */
    select?: CartSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Cart
     */
    omit?: CartOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CartInclude<ExtArgs> | null
    /**
     * Filter, which Cart to fetch.
     */
    where?: CartWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Carts to fetch.
     */
    orderBy?: CartOrderByWithRelationInput | CartOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Carts.
     */
    cursor?: CartWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Carts 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` Carts.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Carts.
     */
    distinct?: CartScalarFieldEnum | CartScalarFieldEnum[]
  }

  /**
   * Cart findMany
   */
  export type CartFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Cart
     */
    select?: CartSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Cart
     */
    omit?: CartOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CartInclude<ExtArgs> | null
    /**
     * Filter, which Carts to fetch.
     */
    where?: CartWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Carts to fetch.
     */
    orderBy?: CartOrderByWithRelationInput | CartOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing Carts.
     */
    cursor?: CartWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Carts 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` Carts.
     */
    skip?: number
    distinct?: CartScalarFieldEnum | CartScalarFieldEnum[]
  }

  /**
   * Cart create
   */
  export type CartCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Cart
     */
    select?: CartSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Cart
     */
    omit?: CartOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CartInclude<ExtArgs> | null
    /**
     * The data needed to create a Cart.
     */
    data: XOR<CartCreateInput, CartUncheckedCreateInput>
  }

  /**
   * Cart createMany
   */
  export type CartCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many Carts.
     */
    data: CartCreateManyInput | CartCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Cart createManyAndReturn
   */
  export type CartCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Cart
     */
    select?: CartSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Cart
     */
    omit?: CartOmit<ExtArgs> | null
    /**
     * The data used to create many Carts.
     */
    data: CartCreateManyInput | CartCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CartIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * Cart update
   */
  export type CartUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Cart
     */
    select?: CartSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Cart
     */
    omit?: CartOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CartInclude<ExtArgs> | null
    /**
     * The data needed to update a Cart.
     */
    data: XOR<CartUpdateInput, CartUncheckedUpdateInput>
    /**
     * Choose, which Cart to update.
     */
    where: CartWhereUniqueInput
  }

  /**
   * Cart updateMany
   */
  export type CartUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update Carts.
     */
    data: XOR<CartUpdateManyMutationInput, CartUncheckedUpdateManyInput>
    /**
     * Filter which Carts to update
     */
    where?: CartWhereInput
    /**
     * Limit how many Carts to update.
     */
    limit?: number
  }

  /**
   * Cart updateManyAndReturn
   */
  export type CartUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Cart
     */
    select?: CartSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Cart
     */
    omit?: CartOmit<ExtArgs> | null
    /**
     * The data used to update Carts.
     */
    data: XOR<CartUpdateManyMutationInput, CartUncheckedUpdateManyInput>
    /**
     * Filter which Carts to update
     */
    where?: CartWhereInput
    /**
     * Limit how many Carts to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CartIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * Cart upsert
   */
  export type CartUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Cart
     */
    select?: CartSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Cart
     */
    omit?: CartOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CartInclude<ExtArgs> | null
    /**
     * The filter to search for the Cart to update in case it exists.
     */
    where: CartWhereUniqueInput
    /**
     * In case the Cart found by the `where` argument doesn't exist, create a new Cart with this data.
     */
    create: XOR<CartCreateInput, CartUncheckedCreateInput>
    /**
     * In case the Cart was found with the provided `where` argument, update it with this data.
     */
    update: XOR<CartUpdateInput, CartUncheckedUpdateInput>
  }

  /**
   * Cart delete
   */
  export type CartDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Cart
     */
    select?: CartSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Cart
     */
    omit?: CartOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CartInclude<ExtArgs> | null
    /**
     * Filter which Cart to delete.
     */
    where: CartWhereUniqueInput
  }

  /**
   * Cart deleteMany
   */
  export type CartDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Carts to delete
     */
    where?: CartWhereInput
    /**
     * Limit how many Carts to delete.
     */
    limit?: number
  }

  /**
   * Cart.items
   */
  export type Cart$itemsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CartItem
     */
    select?: CartItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CartItem
     */
    omit?: CartItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CartItemInclude<ExtArgs> | null
    where?: CartItemWhereInput
    orderBy?: CartItemOrderByWithRelationInput | CartItemOrderByWithRelationInput[]
    cursor?: CartItemWhereUniqueInput
    take?: number
    skip?: number
    distinct?: CartItemScalarFieldEnum | CartItemScalarFieldEnum[]
  }

  /**
   * Cart without action
   */
  export type CartDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Cart
     */
    select?: CartSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Cart
     */
    omit?: CartOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CartInclude<ExtArgs> | null
  }


  /**
   * Model CartItem
   */

  export type AggregateCartItem = {
    _count: CartItemCountAggregateOutputType | null
    _avg: CartItemAvgAggregateOutputType | null
    _sum: CartItemSumAggregateOutputType | null
    _min: CartItemMinAggregateOutputType | null
    _max: CartItemMaxAggregateOutputType | null
  }

  export type CartItemAvgAggregateOutputType = {
    quantity: number | null
  }

  export type CartItemSumAggregateOutputType = {
    quantity: number | null
  }

  export type CartItemMinAggregateOutputType = {
    id: string | null
    cartId: string | null
    productId: string | null
    quantity: number | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type CartItemMaxAggregateOutputType = {
    id: string | null
    cartId: string | null
    productId: string | null
    quantity: number | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type CartItemCountAggregateOutputType = {
    id: number
    cartId: number
    productId: number
    quantity: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type CartItemAvgAggregateInputType = {
    quantity?: true
  }

  export type CartItemSumAggregateInputType = {
    quantity?: true
  }

  export type CartItemMinAggregateInputType = {
    id?: true
    cartId?: true
    productId?: true
    quantity?: true
    createdAt?: true
    updatedAt?: true
  }

  export type CartItemMaxAggregateInputType = {
    id?: true
    cartId?: true
    productId?: true
    quantity?: true
    createdAt?: true
    updatedAt?: true
  }

  export type CartItemCountAggregateInputType = {
    id?: true
    cartId?: true
    productId?: true
    quantity?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type CartItemAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which CartItem to aggregate.
     */
    where?: CartItemWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of CartItems to fetch.
     */
    orderBy?: CartItemOrderByWithRelationInput | CartItemOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: CartItemWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` CartItems 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` CartItems.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned CartItems
    **/
    _count?: true | CartItemCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: CartItemAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: CartItemSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: CartItemMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: CartItemMaxAggregateInputType
  }

  export type GetCartItemAggregateType<T extends CartItemAggregateArgs> = {
        [P in keyof T & keyof AggregateCartItem]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateCartItem[P]>
      : GetScalarType<T[P], AggregateCartItem[P]>
  }




  export type CartItemGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: CartItemWhereInput
    orderBy?: CartItemOrderByWithAggregationInput | CartItemOrderByWithAggregationInput[]
    by: CartItemScalarFieldEnum[] | CartItemScalarFieldEnum
    having?: CartItemScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: CartItemCountAggregateInputType | true
    _avg?: CartItemAvgAggregateInputType
    _sum?: CartItemSumAggregateInputType
    _min?: CartItemMinAggregateInputType
    _max?: CartItemMaxAggregateInputType
  }

  export type CartItemGroupByOutputType = {
    id: string
    cartId: string
    productId: string
    quantity: number
    createdAt: Date
    updatedAt: Date
    _count: CartItemCountAggregateOutputType | null
    _avg: CartItemAvgAggregateOutputType | null
    _sum: CartItemSumAggregateOutputType | null
    _min: CartItemMinAggregateOutputType | null
    _max: CartItemMaxAggregateOutputType | null
  }

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


  export type CartItemSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    cartId?: boolean
    productId?: boolean
    quantity?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    cart?: boolean | CartDefaultArgs<ExtArgs>
    product?: boolean | ProductDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["cartItem"]>

  export type CartItemSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    cartId?: boolean
    productId?: boolean
    quantity?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    cart?: boolean | CartDefaultArgs<ExtArgs>
    product?: boolean | ProductDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["cartItem"]>

  export type CartItemSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    cartId?: boolean
    productId?: boolean
    quantity?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    cart?: boolean | CartDefaultArgs<ExtArgs>
    product?: boolean | ProductDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["cartItem"]>

  export type CartItemSelectScalar = {
    id?: boolean
    cartId?: boolean
    productId?: boolean
    quantity?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type CartItemOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "cartId" | "productId" | "quantity" | "createdAt" | "updatedAt", ExtArgs["result"]["cartItem"]>
  export type CartItemInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    cart?: boolean | CartDefaultArgs<ExtArgs>
    product?: boolean | ProductDefaultArgs<ExtArgs>
  }
  export type CartItemIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    cart?: boolean | CartDefaultArgs<ExtArgs>
    product?: boolean | ProductDefaultArgs<ExtArgs>
  }
  export type CartItemIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    cart?: boolean | CartDefaultArgs<ExtArgs>
    product?: boolean | ProductDefaultArgs<ExtArgs>
  }

  export type $CartItemPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "CartItem"
    objects: {
      cart: Prisma.$CartPayload<ExtArgs>
      product: Prisma.$ProductPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      cartId: string
      productId: string
      quantity: number
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["cartItem"]>
    composites: {}
  }

  type CartItemGetPayload<S extends boolean | null | undefined | CartItemDefaultArgs> = $Result.GetResult<Prisma.$CartItemPayload, S>

  type CartItemCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<CartItemFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: CartItemCountAggregateInputType | true
    }

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

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

    /**
     * Find the first CartItem 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 {CartItemFindFirstArgs} args - Arguments to find a CartItem
     * @example
     * // Get one CartItem
     * const cartItem = await prisma.cartItem.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends CartItemFindFirstArgs>(args?: SelectSubset<T, CartItemFindFirstArgs<ExtArgs>>): Prisma__CartItemClient<$Result.GetResult<Prisma.$CartItemPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first CartItem 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 {CartItemFindFirstOrThrowArgs} args - Arguments to find a CartItem
     * @example
     * // Get one CartItem
     * const cartItem = await prisma.cartItem.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends CartItemFindFirstOrThrowArgs>(args?: SelectSubset<T, CartItemFindFirstOrThrowArgs<ExtArgs>>): Prisma__CartItemClient<$Result.GetResult<Prisma.$CartItemPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more CartItems 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 {CartItemFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all CartItems
     * const cartItems = await prisma.cartItem.findMany()
     * 
     * // Get first 10 CartItems
     * const cartItems = await prisma.cartItem.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const cartItemWithIdOnly = await prisma.cartItem.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends CartItemFindManyArgs>(args?: SelectSubset<T, CartItemFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$CartItemPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a CartItem.
     * @param {CartItemCreateArgs} args - Arguments to create a CartItem.
     * @example
     * // Create one CartItem
     * const CartItem = await prisma.cartItem.create({
     *   data: {
     *     // ... data to create a CartItem
     *   }
     * })
     * 
     */
    create<T extends CartItemCreateArgs>(args: SelectSubset<T, CartItemCreateArgs<ExtArgs>>): Prisma__CartItemClient<$Result.GetResult<Prisma.$CartItemPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

    /**
     * Create many CartItems and returns the data saved in the database.
     * @param {CartItemCreateManyAndReturnArgs} args - Arguments to create many CartItems.
     * @example
     * // Create many CartItems
     * const cartItem = await prisma.cartItem.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many CartItems and only return the `id`
     * const cartItemWithIdOnly = await prisma.cartItem.createManyAndReturn({
     *   select: { id: true },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    createManyAndReturn<T extends CartItemCreateManyAndReturnArgs>(args?: SelectSubset<T, CartItemCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$CartItemPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a CartItem.
     * @param {CartItemDeleteArgs} args - Arguments to delete one CartItem.
     * @example
     * // Delete one CartItem
     * const CartItem = await prisma.cartItem.delete({
     *   where: {
     *     // ... filter to delete one CartItem
     *   }
     * })
     * 
     */
    delete<T extends CartItemDeleteArgs>(args: SelectSubset<T, CartItemDeleteArgs<ExtArgs>>): Prisma__CartItemClient<$Result.GetResult<Prisma.$CartItemPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one CartItem.
     * @param {CartItemUpdateArgs} args - Arguments to update one CartItem.
     * @example
     * // Update one CartItem
     * const cartItem = await prisma.cartItem.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends CartItemUpdateArgs>(args: SelectSubset<T, CartItemUpdateArgs<ExtArgs>>): Prisma__CartItemClient<$Result.GetResult<Prisma.$CartItemPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

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

    /**
     * Update zero or more CartItems and returns the data updated in the database.
     * @param {CartItemUpdateManyAndReturnArgs} args - Arguments to update many CartItems.
     * @example
     * // Update many CartItems
     * const cartItem = await prisma.cartItem.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more CartItems and only return the `id`
     * const cartItemWithIdOnly = await prisma.cartItem.updateManyAndReturn({
     *   select: { id: true },
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    updateManyAndReturn<T extends CartItemUpdateManyAndReturnArgs>(args: SelectSubset<T, CartItemUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$CartItemPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

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


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

    /**
     * Allows you to perform aggregations operations on a CartItem.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {CartItemAggregateArgs} 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 CartItemAggregateArgs>(args: Subset<T, CartItemAggregateArgs>): Prisma.PrismaPromise<GetCartItemAggregateType<T>>

    /**
     * Group by CartItem.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {CartItemGroupByArgs} 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 CartItemGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: CartItemGroupByArgs['orderBy'] }
        : { orderBy?: CartItemGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends 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 Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends 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 Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends 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 True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, CartItemGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetCartItemGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the CartItem model
   */
  readonly fields: CartItemFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for CartItem.
   * 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__CartItemClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    cart<T extends CartDefaultArgs<ExtArgs> = {}>(args?: Subset<T, CartDefaultArgs<ExtArgs>>): Prisma__CartClient<$Result.GetResult<Prisma.$CartPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    product<T extends ProductDefaultArgs<ExtArgs> = {}>(args?: Subset<T, ProductDefaultArgs<ExtArgs>>): Prisma__ProductClient<$Result.GetResult<Prisma.$ProductPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * 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): $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): $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): $Utils.JsPromise<T>
  }




  /**
   * Fields of the CartItem model
   */
  interface CartItemFieldRefs {
    readonly id: FieldRef<"CartItem", 'String'>
    readonly cartId: FieldRef<"CartItem", 'String'>
    readonly productId: FieldRef<"CartItem", 'String'>
    readonly quantity: FieldRef<"CartItem", 'Int'>
    readonly createdAt: FieldRef<"CartItem", 'DateTime'>
    readonly updatedAt: FieldRef<"CartItem", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * CartItem findUnique
   */
  export type CartItemFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CartItem
     */
    select?: CartItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CartItem
     */
    omit?: CartItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CartItemInclude<ExtArgs> | null
    /**
     * Filter, which CartItem to fetch.
     */
    where: CartItemWhereUniqueInput
  }

  /**
   * CartItem findUniqueOrThrow
   */
  export type CartItemFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CartItem
     */
    select?: CartItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CartItem
     */
    omit?: CartItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CartItemInclude<ExtArgs> | null
    /**
     * Filter, which CartItem to fetch.
     */
    where: CartItemWhereUniqueInput
  }

  /**
   * CartItem findFirst
   */
  export type CartItemFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CartItem
     */
    select?: CartItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CartItem
     */
    omit?: CartItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CartItemInclude<ExtArgs> | null
    /**
     * Filter, which CartItem to fetch.
     */
    where?: CartItemWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of CartItems to fetch.
     */
    orderBy?: CartItemOrderByWithRelationInput | CartItemOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for CartItems.
     */
    cursor?: CartItemWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` CartItems 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` CartItems.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of CartItems.
     */
    distinct?: CartItemScalarFieldEnum | CartItemScalarFieldEnum[]
  }

  /**
   * CartItem findFirstOrThrow
   */
  export type CartItemFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CartItem
     */
    select?: CartItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CartItem
     */
    omit?: CartItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CartItemInclude<ExtArgs> | null
    /**
     * Filter, which CartItem to fetch.
     */
    where?: CartItemWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of CartItems to fetch.
     */
    orderBy?: CartItemOrderByWithRelationInput | CartItemOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for CartItems.
     */
    cursor?: CartItemWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` CartItems 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` CartItems.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of CartItems.
     */
    distinct?: CartItemScalarFieldEnum | CartItemScalarFieldEnum[]
  }

  /**
   * CartItem findMany
   */
  export type CartItemFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CartItem
     */
    select?: CartItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CartItem
     */
    omit?: CartItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CartItemInclude<ExtArgs> | null
    /**
     * Filter, which CartItems to fetch.
     */
    where?: CartItemWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of CartItems to fetch.
     */
    orderBy?: CartItemOrderByWithRelationInput | CartItemOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing CartItems.
     */
    cursor?: CartItemWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` CartItems 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` CartItems.
     */
    skip?: number
    distinct?: CartItemScalarFieldEnum | CartItemScalarFieldEnum[]
  }

  /**
   * CartItem create
   */
  export type CartItemCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CartItem
     */
    select?: CartItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CartItem
     */
    omit?: CartItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CartItemInclude<ExtArgs> | null
    /**
     * The data needed to create a CartItem.
     */
    data: XOR<CartItemCreateInput, CartItemUncheckedCreateInput>
  }

  /**
   * CartItem createMany
   */
  export type CartItemCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many CartItems.
     */
    data: CartItemCreateManyInput | CartItemCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * CartItem createManyAndReturn
   */
  export type CartItemCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CartItem
     */
    select?: CartItemSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the CartItem
     */
    omit?: CartItemOmit<ExtArgs> | null
    /**
     * The data used to create many CartItems.
     */
    data: CartItemCreateManyInput | CartItemCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CartItemIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * CartItem update
   */
  export type CartItemUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CartItem
     */
    select?: CartItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CartItem
     */
    omit?: CartItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CartItemInclude<ExtArgs> | null
    /**
     * The data needed to update a CartItem.
     */
    data: XOR<CartItemUpdateInput, CartItemUncheckedUpdateInput>
    /**
     * Choose, which CartItem to update.
     */
    where: CartItemWhereUniqueInput
  }

  /**
   * CartItem updateMany
   */
  export type CartItemUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update CartItems.
     */
    data: XOR<CartItemUpdateManyMutationInput, CartItemUncheckedUpdateManyInput>
    /**
     * Filter which CartItems to update
     */
    where?: CartItemWhereInput
    /**
     * Limit how many CartItems to update.
     */
    limit?: number
  }

  /**
   * CartItem updateManyAndReturn
   */
  export type CartItemUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CartItem
     */
    select?: CartItemSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the CartItem
     */
    omit?: CartItemOmit<ExtArgs> | null
    /**
     * The data used to update CartItems.
     */
    data: XOR<CartItemUpdateManyMutationInput, CartItemUncheckedUpdateManyInput>
    /**
     * Filter which CartItems to update
     */
    where?: CartItemWhereInput
    /**
     * Limit how many CartItems to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CartItemIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * CartItem upsert
   */
  export type CartItemUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CartItem
     */
    select?: CartItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CartItem
     */
    omit?: CartItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CartItemInclude<ExtArgs> | null
    /**
     * The filter to search for the CartItem to update in case it exists.
     */
    where: CartItemWhereUniqueInput
    /**
     * In case the CartItem found by the `where` argument doesn't exist, create a new CartItem with this data.
     */
    create: XOR<CartItemCreateInput, CartItemUncheckedCreateInput>
    /**
     * In case the CartItem was found with the provided `where` argument, update it with this data.
     */
    update: XOR<CartItemUpdateInput, CartItemUncheckedUpdateInput>
  }

  /**
   * CartItem delete
   */
  export type CartItemDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CartItem
     */
    select?: CartItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CartItem
     */
    omit?: CartItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CartItemInclude<ExtArgs> | null
    /**
     * Filter which CartItem to delete.
     */
    where: CartItemWhereUniqueInput
  }

  /**
   * CartItem deleteMany
   */
  export type CartItemDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which CartItems to delete
     */
    where?: CartItemWhereInput
    /**
     * Limit how many CartItems to delete.
     */
    limit?: number
  }

  /**
   * CartItem without action
   */
  export type CartItemDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CartItem
     */
    select?: CartItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CartItem
     */
    omit?: CartItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CartItemInclude<ExtArgs> | null
  }


  /**
   * Model Favorites
   */

  export type AggregateFavorites = {
    _count: FavoritesCountAggregateOutputType | null
    _min: FavoritesMinAggregateOutputType | null
    _max: FavoritesMaxAggregateOutputType | null
  }

  export type FavoritesMinAggregateOutputType = {
    id: string | null
    organizationId: string | null
    productId: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type FavoritesMaxAggregateOutputType = {
    id: string | null
    organizationId: string | null
    productId: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type FavoritesCountAggregateOutputType = {
    id: number
    organizationId: number
    productId: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type FavoritesMinAggregateInputType = {
    id?: true
    organizationId?: true
    productId?: true
    createdAt?: true
    updatedAt?: true
  }

  export type FavoritesMaxAggregateInputType = {
    id?: true
    organizationId?: true
    productId?: true
    createdAt?: true
    updatedAt?: true
  }

  export type FavoritesCountAggregateInputType = {
    id?: true
    organizationId?: true
    productId?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type FavoritesAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Favorites to aggregate.
     */
    where?: FavoritesWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Favorites to fetch.
     */
    orderBy?: FavoritesOrderByWithRelationInput | FavoritesOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: FavoritesWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Favorites 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` Favorites.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned Favorites
    **/
    _count?: true | FavoritesCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: FavoritesMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: FavoritesMaxAggregateInputType
  }

  export type GetFavoritesAggregateType<T extends FavoritesAggregateArgs> = {
        [P in keyof T & keyof AggregateFavorites]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateFavorites[P]>
      : GetScalarType<T[P], AggregateFavorites[P]>
  }




  export type FavoritesGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: FavoritesWhereInput
    orderBy?: FavoritesOrderByWithAggregationInput | FavoritesOrderByWithAggregationInput[]
    by: FavoritesScalarFieldEnum[] | FavoritesScalarFieldEnum
    having?: FavoritesScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: FavoritesCountAggregateInputType | true
    _min?: FavoritesMinAggregateInputType
    _max?: FavoritesMaxAggregateInputType
  }

  export type FavoritesGroupByOutputType = {
    id: string
    organizationId: string
    productId: string
    createdAt: Date
    updatedAt: Date
    _count: FavoritesCountAggregateOutputType | null
    _min: FavoritesMinAggregateOutputType | null
    _max: FavoritesMaxAggregateOutputType | null
  }

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


  export type FavoritesSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    productId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
    product?: boolean | ProductDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["favorites"]>

  export type FavoritesSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    productId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
    product?: boolean | ProductDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["favorites"]>

  export type FavoritesSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    productId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
    product?: boolean | ProductDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["favorites"]>

  export type FavoritesSelectScalar = {
    id?: boolean
    organizationId?: boolean
    productId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type FavoritesOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "organizationId" | "productId" | "createdAt" | "updatedAt", ExtArgs["result"]["favorites"]>
  export type FavoritesInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
    product?: boolean | ProductDefaultArgs<ExtArgs>
  }
  export type FavoritesIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
    product?: boolean | ProductDefaultArgs<ExtArgs>
  }
  export type FavoritesIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
    product?: boolean | ProductDefaultArgs<ExtArgs>
  }

  export type $FavoritesPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "Favorites"
    objects: {
      organization: Prisma.$OrganizationPayload<ExtArgs>
      product: Prisma.$ProductPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      organizationId: string
      productId: string
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["favorites"]>
    composites: {}
  }

  type FavoritesGetPayload<S extends boolean | null | undefined | FavoritesDefaultArgs> = $Result.GetResult<Prisma.$FavoritesPayload, S>

  type FavoritesCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<FavoritesFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: FavoritesCountAggregateInputType | true
    }

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

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

    /**
     * Find the first Favorites 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 {FavoritesFindFirstArgs} args - Arguments to find a Favorites
     * @example
     * // Get one Favorites
     * const favorites = await prisma.favorites.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends FavoritesFindFirstArgs>(args?: SelectSubset<T, FavoritesFindFirstArgs<ExtArgs>>): Prisma__FavoritesClient<$Result.GetResult<Prisma.$FavoritesPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Favorites 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 {FavoritesFindFirstOrThrowArgs} args - Arguments to find a Favorites
     * @example
     * // Get one Favorites
     * const favorites = await prisma.favorites.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends FavoritesFindFirstOrThrowArgs>(args?: SelectSubset<T, FavoritesFindFirstOrThrowArgs<ExtArgs>>): Prisma__FavoritesClient<$Result.GetResult<Prisma.$FavoritesPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more Favorites 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 {FavoritesFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all Favorites
     * const favorites = await prisma.favorites.findMany()
     * 
     * // Get first 10 Favorites
     * const favorites = await prisma.favorites.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const favoritesWithIdOnly = await prisma.favorites.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends FavoritesFindManyArgs>(args?: SelectSubset<T, FavoritesFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FavoritesPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a Favorites.
     * @param {FavoritesCreateArgs} args - Arguments to create a Favorites.
     * @example
     * // Create one Favorites
     * const Favorites = await prisma.favorites.create({
     *   data: {
     *     // ... data to create a Favorites
     *   }
     * })
     * 
     */
    create<T extends FavoritesCreateArgs>(args: SelectSubset<T, FavoritesCreateArgs<ExtArgs>>): Prisma__FavoritesClient<$Result.GetResult<Prisma.$FavoritesPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

    /**
     * Create many Favorites and returns the data saved in the database.
     * @param {FavoritesCreateManyAndReturnArgs} args - Arguments to create many Favorites.
     * @example
     * // Create many Favorites
     * const favorites = await prisma.favorites.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many Favorites and only return the `id`
     * const favoritesWithIdOnly = await prisma.favorites.createManyAndReturn({
     *   select: { id: true },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    createManyAndReturn<T extends FavoritesCreateManyAndReturnArgs>(args?: SelectSubset<T, FavoritesCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FavoritesPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a Favorites.
     * @param {FavoritesDeleteArgs} args - Arguments to delete one Favorites.
     * @example
     * // Delete one Favorites
     * const Favorites = await prisma.favorites.delete({
     *   where: {
     *     // ... filter to delete one Favorites
     *   }
     * })
     * 
     */
    delete<T extends FavoritesDeleteArgs>(args: SelectSubset<T, FavoritesDeleteArgs<ExtArgs>>): Prisma__FavoritesClient<$Result.GetResult<Prisma.$FavoritesPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one Favorites.
     * @param {FavoritesUpdateArgs} args - Arguments to update one Favorites.
     * @example
     * // Update one Favorites
     * const favorites = await prisma.favorites.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends FavoritesUpdateArgs>(args: SelectSubset<T, FavoritesUpdateArgs<ExtArgs>>): Prisma__FavoritesClient<$Result.GetResult<Prisma.$FavoritesPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

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

    /**
     * Update zero or more Favorites and returns the data updated in the database.
     * @param {FavoritesUpdateManyAndReturnArgs} args - Arguments to update many Favorites.
     * @example
     * // Update many Favorites
     * const favorites = await prisma.favorites.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more Favorites and only return the `id`
     * const favoritesWithIdOnly = await prisma.favorites.updateManyAndReturn({
     *   select: { id: true },
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    updateManyAndReturn<T extends FavoritesUpdateManyAndReturnArgs>(args: SelectSubset<T, FavoritesUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FavoritesPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

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


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

    /**
     * Allows you to perform aggregations operations on a Favorites.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {FavoritesAggregateArgs} 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 FavoritesAggregateArgs>(args: Subset<T, FavoritesAggregateArgs>): Prisma.PrismaPromise<GetFavoritesAggregateType<T>>

    /**
     * Group by Favorites.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {FavoritesGroupByArgs} 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 FavoritesGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: FavoritesGroupByArgs['orderBy'] }
        : { orderBy?: FavoritesGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends 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 Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends 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 Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends 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 True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, FavoritesGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetFavoritesGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the Favorites model
   */
  readonly fields: FavoritesFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for Favorites.
   * 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__FavoritesClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    organization<T extends OrganizationDefaultArgs<ExtArgs> = {}>(args?: Subset<T, OrganizationDefaultArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    product<T extends ProductDefaultArgs<ExtArgs> = {}>(args?: Subset<T, ProductDefaultArgs<ExtArgs>>): Prisma__ProductClient<$Result.GetResult<Prisma.$ProductPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * 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): $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): $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): $Utils.JsPromise<T>
  }




  /**
   * Fields of the Favorites model
   */
  interface FavoritesFieldRefs {
    readonly id: FieldRef<"Favorites", 'String'>
    readonly organizationId: FieldRef<"Favorites", 'String'>
    readonly productId: FieldRef<"Favorites", 'String'>
    readonly createdAt: FieldRef<"Favorites", 'DateTime'>
    readonly updatedAt: FieldRef<"Favorites", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * Favorites findUnique
   */
  export type FavoritesFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Favorites
     */
    select?: FavoritesSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Favorites
     */
    omit?: FavoritesOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FavoritesInclude<ExtArgs> | null
    /**
     * Filter, which Favorites to fetch.
     */
    where: FavoritesWhereUniqueInput
  }

  /**
   * Favorites findUniqueOrThrow
   */
  export type FavoritesFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Favorites
     */
    select?: FavoritesSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Favorites
     */
    omit?: FavoritesOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FavoritesInclude<ExtArgs> | null
    /**
     * Filter, which Favorites to fetch.
     */
    where: FavoritesWhereUniqueInput
  }

  /**
   * Favorites findFirst
   */
  export type FavoritesFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Favorites
     */
    select?: FavoritesSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Favorites
     */
    omit?: FavoritesOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FavoritesInclude<ExtArgs> | null
    /**
     * Filter, which Favorites to fetch.
     */
    where?: FavoritesWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Favorites to fetch.
     */
    orderBy?: FavoritesOrderByWithRelationInput | FavoritesOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Favorites.
     */
    cursor?: FavoritesWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Favorites 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` Favorites.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Favorites.
     */
    distinct?: FavoritesScalarFieldEnum | FavoritesScalarFieldEnum[]
  }

  /**
   * Favorites findFirstOrThrow
   */
  export type FavoritesFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Favorites
     */
    select?: FavoritesSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Favorites
     */
    omit?: FavoritesOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FavoritesInclude<ExtArgs> | null
    /**
     * Filter, which Favorites to fetch.
     */
    where?: FavoritesWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Favorites to fetch.
     */
    orderBy?: FavoritesOrderByWithRelationInput | FavoritesOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Favorites.
     */
    cursor?: FavoritesWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Favorites 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` Favorites.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Favorites.
     */
    distinct?: FavoritesScalarFieldEnum | FavoritesScalarFieldEnum[]
  }

  /**
   * Favorites findMany
   */
  export type FavoritesFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Favorites
     */
    select?: FavoritesSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Favorites
     */
    omit?: FavoritesOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FavoritesInclude<ExtArgs> | null
    /**
     * Filter, which Favorites to fetch.
     */
    where?: FavoritesWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Favorites to fetch.
     */
    orderBy?: FavoritesOrderByWithRelationInput | FavoritesOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing Favorites.
     */
    cursor?: FavoritesWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Favorites 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` Favorites.
     */
    skip?: number
    distinct?: FavoritesScalarFieldEnum | FavoritesScalarFieldEnum[]
  }

  /**
   * Favorites create
   */
  export type FavoritesCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Favorites
     */
    select?: FavoritesSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Favorites
     */
    omit?: FavoritesOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FavoritesInclude<ExtArgs> | null
    /**
     * The data needed to create a Favorites.
     */
    data: XOR<FavoritesCreateInput, FavoritesUncheckedCreateInput>
  }

  /**
   * Favorites createMany
   */
  export type FavoritesCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many Favorites.
     */
    data: FavoritesCreateManyInput | FavoritesCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Favorites createManyAndReturn
   */
  export type FavoritesCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Favorites
     */
    select?: FavoritesSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Favorites
     */
    omit?: FavoritesOmit<ExtArgs> | null
    /**
     * The data used to create many Favorites.
     */
    data: FavoritesCreateManyInput | FavoritesCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FavoritesIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * Favorites update
   */
  export type FavoritesUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Favorites
     */
    select?: FavoritesSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Favorites
     */
    omit?: FavoritesOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FavoritesInclude<ExtArgs> | null
    /**
     * The data needed to update a Favorites.
     */
    data: XOR<FavoritesUpdateInput, FavoritesUncheckedUpdateInput>
    /**
     * Choose, which Favorites to update.
     */
    where: FavoritesWhereUniqueInput
  }

  /**
   * Favorites updateMany
   */
  export type FavoritesUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update Favorites.
     */
    data: XOR<FavoritesUpdateManyMutationInput, FavoritesUncheckedUpdateManyInput>
    /**
     * Filter which Favorites to update
     */
    where?: FavoritesWhereInput
    /**
     * Limit how many Favorites to update.
     */
    limit?: number
  }

  /**
   * Favorites updateManyAndReturn
   */
  export type FavoritesUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Favorites
     */
    select?: FavoritesSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Favorites
     */
    omit?: FavoritesOmit<ExtArgs> | null
    /**
     * The data used to update Favorites.
     */
    data: XOR<FavoritesUpdateManyMutationInput, FavoritesUncheckedUpdateManyInput>
    /**
     * Filter which Favorites to update
     */
    where?: FavoritesWhereInput
    /**
     * Limit how many Favorites to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FavoritesIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * Favorites upsert
   */
  export type FavoritesUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Favorites
     */
    select?: FavoritesSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Favorites
     */
    omit?: FavoritesOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FavoritesInclude<ExtArgs> | null
    /**
     * The filter to search for the Favorites to update in case it exists.
     */
    where: FavoritesWhereUniqueInput
    /**
     * In case the Favorites found by the `where` argument doesn't exist, create a new Favorites with this data.
     */
    create: XOR<FavoritesCreateInput, FavoritesUncheckedCreateInput>
    /**
     * In case the Favorites was found with the provided `where` argument, update it with this data.
     */
    update: XOR<FavoritesUpdateInput, FavoritesUncheckedUpdateInput>
  }

  /**
   * Favorites delete
   */
  export type FavoritesDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Favorites
     */
    select?: FavoritesSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Favorites
     */
    omit?: FavoritesOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FavoritesInclude<ExtArgs> | null
    /**
     * Filter which Favorites to delete.
     */
    where: FavoritesWhereUniqueInput
  }

  /**
   * Favorites deleteMany
   */
  export type FavoritesDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Favorites to delete
     */
    where?: FavoritesWhereInput
    /**
     * Limit how many Favorites to delete.
     */
    limit?: number
  }

  /**
   * Favorites without action
   */
  export type FavoritesDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Favorites
     */
    select?: FavoritesSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Favorites
     */
    omit?: FavoritesOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FavoritesInclude<ExtArgs> | null
  }


  /**
   * Model Employee
   */

  export type AggregateEmployee = {
    _count: EmployeeCountAggregateOutputType | null
    _avg: EmployeeAvgAggregateOutputType | null
    _sum: EmployeeSumAggregateOutputType | null
    _min: EmployeeMinAggregateOutputType | null
    _max: EmployeeMaxAggregateOutputType | null
  }

  export type EmployeeAvgAggregateOutputType = {
    salary: number | null
  }

  export type EmployeeSumAggregateOutputType = {
    salary: number | null
  }

  export type EmployeeMinAggregateOutputType = {
    id: string | null
    firstName: string | null
    lastName: string | null
    middleName: string | null
    birthDate: Date | null
    avatar: string | null
    passportPhoto: string | null
    passportSeries: string | null
    passportNumber: string | null
    passportIssued: string | null
    passportDate: Date | null
    address: string | null
    position: string | null
    department: string | null
    hireDate: Date | null
    salary: number | null
    status: $Enums.EmployeeStatus | null
    phone: string | null
    email: string | null
    telegram: string | null
    whatsapp: string | null
    emergencyContact: string | null
    emergencyPhone: string | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type EmployeeMaxAggregateOutputType = {
    id: string | null
    firstName: string | null
    lastName: string | null
    middleName: string | null
    birthDate: Date | null
    avatar: string | null
    passportPhoto: string | null
    passportSeries: string | null
    passportNumber: string | null
    passportIssued: string | null
    passportDate: Date | null
    address: string | null
    position: string | null
    department: string | null
    hireDate: Date | null
    salary: number | null
    status: $Enums.EmployeeStatus | null
    phone: string | null
    email: string | null
    telegram: string | null
    whatsapp: string | null
    emergencyContact: string | null
    emergencyPhone: string | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type EmployeeCountAggregateOutputType = {
    id: number
    firstName: number
    lastName: number
    middleName: number
    birthDate: number
    avatar: number
    passportPhoto: number
    passportSeries: number
    passportNumber: number
    passportIssued: number
    passportDate: number
    address: number
    position: number
    department: number
    hireDate: number
    salary: number
    status: number
    phone: number
    email: number
    telegram: number
    whatsapp: number
    emergencyContact: number
    emergencyPhone: number
    organizationId: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type EmployeeAvgAggregateInputType = {
    salary?: true
  }

  export type EmployeeSumAggregateInputType = {
    salary?: true
  }

  export type EmployeeMinAggregateInputType = {
    id?: true
    firstName?: true
    lastName?: true
    middleName?: true
    birthDate?: true
    avatar?: true
    passportPhoto?: true
    passportSeries?: true
    passportNumber?: true
    passportIssued?: true
    passportDate?: true
    address?: true
    position?: true
    department?: true
    hireDate?: true
    salary?: true
    status?: true
    phone?: true
    email?: true
    telegram?: true
    whatsapp?: true
    emergencyContact?: true
    emergencyPhone?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
  }

  export type EmployeeMaxAggregateInputType = {
    id?: true
    firstName?: true
    lastName?: true
    middleName?: true
    birthDate?: true
    avatar?: true
    passportPhoto?: true
    passportSeries?: true
    passportNumber?: true
    passportIssued?: true
    passportDate?: true
    address?: true
    position?: true
    department?: true
    hireDate?: true
    salary?: true
    status?: true
    phone?: true
    email?: true
    telegram?: true
    whatsapp?: true
    emergencyContact?: true
    emergencyPhone?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
  }

  export type EmployeeCountAggregateInputType = {
    id?: true
    firstName?: true
    lastName?: true
    middleName?: true
    birthDate?: true
    avatar?: true
    passportPhoto?: true
    passportSeries?: true
    passportNumber?: true
    passportIssued?: true
    passportDate?: true
    address?: true
    position?: true
    department?: true
    hireDate?: true
    salary?: true
    status?: true
    phone?: true
    email?: true
    telegram?: true
    whatsapp?: true
    emergencyContact?: true
    emergencyPhone?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type EmployeeAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Employee to aggregate.
     */
    where?: EmployeeWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Employees to fetch.
     */
    orderBy?: EmployeeOrderByWithRelationInput | EmployeeOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: EmployeeWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Employees 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` Employees.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned Employees
    **/
    _count?: true | EmployeeCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: EmployeeAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: EmployeeSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: EmployeeMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: EmployeeMaxAggregateInputType
  }

  export type GetEmployeeAggregateType<T extends EmployeeAggregateArgs> = {
        [P in keyof T & keyof AggregateEmployee]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateEmployee[P]>
      : GetScalarType<T[P], AggregateEmployee[P]>
  }




  export type EmployeeGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: EmployeeWhereInput
    orderBy?: EmployeeOrderByWithAggregationInput | EmployeeOrderByWithAggregationInput[]
    by: EmployeeScalarFieldEnum[] | EmployeeScalarFieldEnum
    having?: EmployeeScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: EmployeeCountAggregateInputType | true
    _avg?: EmployeeAvgAggregateInputType
    _sum?: EmployeeSumAggregateInputType
    _min?: EmployeeMinAggregateInputType
    _max?: EmployeeMaxAggregateInputType
  }

  export type EmployeeGroupByOutputType = {
    id: string
    firstName: string
    lastName: string
    middleName: string | null
    birthDate: Date | null
    avatar: string | null
    passportPhoto: string | null
    passportSeries: string | null
    passportNumber: string | null
    passportIssued: string | null
    passportDate: Date | null
    address: string | null
    position: string
    department: string | null
    hireDate: Date
    salary: number | null
    status: $Enums.EmployeeStatus
    phone: string
    email: string | null
    telegram: string | null
    whatsapp: string | null
    emergencyContact: string | null
    emergencyPhone: string | null
    organizationId: string
    createdAt: Date
    updatedAt: Date
    _count: EmployeeCountAggregateOutputType | null
    _avg: EmployeeAvgAggregateOutputType | null
    _sum: EmployeeSumAggregateOutputType | null
    _min: EmployeeMinAggregateOutputType | null
    _max: EmployeeMaxAggregateOutputType | null
  }

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


  export type EmployeeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    firstName?: boolean
    lastName?: boolean
    middleName?: boolean
    birthDate?: boolean
    avatar?: boolean
    passportPhoto?: boolean
    passportSeries?: boolean
    passportNumber?: boolean
    passportIssued?: boolean
    passportDate?: boolean
    address?: boolean
    position?: boolean
    department?: boolean
    hireDate?: boolean
    salary?: boolean
    status?: boolean
    phone?: boolean
    email?: boolean
    telegram?: boolean
    whatsapp?: boolean
    emergencyContact?: boolean
    emergencyPhone?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    scheduleRecords?: boolean | Employee$scheduleRecordsArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
    _count?: boolean | EmployeeCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["employee"]>

  export type EmployeeSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    firstName?: boolean
    lastName?: boolean
    middleName?: boolean
    birthDate?: boolean
    avatar?: boolean
    passportPhoto?: boolean
    passportSeries?: boolean
    passportNumber?: boolean
    passportIssued?: boolean
    passportDate?: boolean
    address?: boolean
    position?: boolean
    department?: boolean
    hireDate?: boolean
    salary?: boolean
    status?: boolean
    phone?: boolean
    email?: boolean
    telegram?: boolean
    whatsapp?: boolean
    emergencyContact?: boolean
    emergencyPhone?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["employee"]>

  export type EmployeeSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    firstName?: boolean
    lastName?: boolean
    middleName?: boolean
    birthDate?: boolean
    avatar?: boolean
    passportPhoto?: boolean
    passportSeries?: boolean
    passportNumber?: boolean
    passportIssued?: boolean
    passportDate?: boolean
    address?: boolean
    position?: boolean
    department?: boolean
    hireDate?: boolean
    salary?: boolean
    status?: boolean
    phone?: boolean
    email?: boolean
    telegram?: boolean
    whatsapp?: boolean
    emergencyContact?: boolean
    emergencyPhone?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["employee"]>

  export type EmployeeSelectScalar = {
    id?: boolean
    firstName?: boolean
    lastName?: boolean
    middleName?: boolean
    birthDate?: boolean
    avatar?: boolean
    passportPhoto?: boolean
    passportSeries?: boolean
    passportNumber?: boolean
    passportIssued?: boolean
    passportDate?: boolean
    address?: boolean
    position?: boolean
    department?: boolean
    hireDate?: boolean
    salary?: boolean
    status?: boolean
    phone?: boolean
    email?: boolean
    telegram?: boolean
    whatsapp?: boolean
    emergencyContact?: boolean
    emergencyPhone?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type EmployeeOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "firstName" | "lastName" | "middleName" | "birthDate" | "avatar" | "passportPhoto" | "passportSeries" | "passportNumber" | "passportIssued" | "passportDate" | "address" | "position" | "department" | "hireDate" | "salary" | "status" | "phone" | "email" | "telegram" | "whatsapp" | "emergencyContact" | "emergencyPhone" | "organizationId" | "createdAt" | "updatedAt", ExtArgs["result"]["employee"]>
  export type EmployeeInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    scheduleRecords?: boolean | Employee$scheduleRecordsArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
    _count?: boolean | EmployeeCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type EmployeeIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }
  export type EmployeeIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }

  export type $EmployeePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "Employee"
    objects: {
      scheduleRecords: Prisma.$EmployeeSchedulePayload<ExtArgs>[]
      organization: Prisma.$OrganizationPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      firstName: string
      lastName: string
      middleName: string | null
      birthDate: Date | null
      avatar: string | null
      passportPhoto: string | null
      passportSeries: string | null
      passportNumber: string | null
      passportIssued: string | null
      passportDate: Date | null
      address: string | null
      position: string
      department: string | null
      hireDate: Date
      salary: number | null
      status: $Enums.EmployeeStatus
      phone: string
      email: string | null
      telegram: string | null
      whatsapp: string | null
      emergencyContact: string | null
      emergencyPhone: string | null
      organizationId: string
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["employee"]>
    composites: {}
  }

  type EmployeeGetPayload<S extends boolean | null | undefined | EmployeeDefaultArgs> = $Result.GetResult<Prisma.$EmployeePayload, S>

  type EmployeeCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<EmployeeFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: EmployeeCountAggregateInputType | true
    }

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

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

    /**
     * Find the first Employee 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 {EmployeeFindFirstArgs} args - Arguments to find a Employee
     * @example
     * // Get one Employee
     * const employee = await prisma.employee.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends EmployeeFindFirstArgs>(args?: SelectSubset<T, EmployeeFindFirstArgs<ExtArgs>>): Prisma__EmployeeClient<$Result.GetResult<Prisma.$EmployeePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Employee 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 {EmployeeFindFirstOrThrowArgs} args - Arguments to find a Employee
     * @example
     * // Get one Employee
     * const employee = await prisma.employee.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends EmployeeFindFirstOrThrowArgs>(args?: SelectSubset<T, EmployeeFindFirstOrThrowArgs<ExtArgs>>): Prisma__EmployeeClient<$Result.GetResult<Prisma.$EmployeePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more Employees 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 {EmployeeFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all Employees
     * const employees = await prisma.employee.findMany()
     * 
     * // Get first 10 Employees
     * const employees = await prisma.employee.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const employeeWithIdOnly = await prisma.employee.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends EmployeeFindManyArgs>(args?: SelectSubset<T, EmployeeFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$EmployeePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a Employee.
     * @param {EmployeeCreateArgs} args - Arguments to create a Employee.
     * @example
     * // Create one Employee
     * const Employee = await prisma.employee.create({
     *   data: {
     *     // ... data to create a Employee
     *   }
     * })
     * 
     */
    create<T extends EmployeeCreateArgs>(args: SelectSubset<T, EmployeeCreateArgs<ExtArgs>>): Prisma__EmployeeClient<$Result.GetResult<Prisma.$EmployeePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

    /**
     * Create many Employees and returns the data saved in the database.
     * @param {EmployeeCreateManyAndReturnArgs} args - Arguments to create many Employees.
     * @example
     * // Create many Employees
     * const employee = await prisma.employee.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many Employees and only return the `id`
     * const employeeWithIdOnly = await prisma.employee.createManyAndReturn({
     *   select: { id: true },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    createManyAndReturn<T extends EmployeeCreateManyAndReturnArgs>(args?: SelectSubset<T, EmployeeCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$EmployeePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a Employee.
     * @param {EmployeeDeleteArgs} args - Arguments to delete one Employee.
     * @example
     * // Delete one Employee
     * const Employee = await prisma.employee.delete({
     *   where: {
     *     // ... filter to delete one Employee
     *   }
     * })
     * 
     */
    delete<T extends EmployeeDeleteArgs>(args: SelectSubset<T, EmployeeDeleteArgs<ExtArgs>>): Prisma__EmployeeClient<$Result.GetResult<Prisma.$EmployeePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one Employee.
     * @param {EmployeeUpdateArgs} args - Arguments to update one Employee.
     * @example
     * // Update one Employee
     * const employee = await prisma.employee.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends EmployeeUpdateArgs>(args: SelectSubset<T, EmployeeUpdateArgs<ExtArgs>>): Prisma__EmployeeClient<$Result.GetResult<Prisma.$EmployeePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

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

    /**
     * Update zero or more Employees and returns the data updated in the database.
     * @param {EmployeeUpdateManyAndReturnArgs} args - Arguments to update many Employees.
     * @example
     * // Update many Employees
     * const employee = await prisma.employee.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more Employees and only return the `id`
     * const employeeWithIdOnly = await prisma.employee.updateManyAndReturn({
     *   select: { id: true },
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    updateManyAndReturn<T extends EmployeeUpdateManyAndReturnArgs>(args: SelectSubset<T, EmployeeUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$EmployeePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

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


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

    /**
     * Allows you to perform aggregations operations on a Employee.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {EmployeeAggregateArgs} 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 EmployeeAggregateArgs>(args: Subset<T, EmployeeAggregateArgs>): Prisma.PrismaPromise<GetEmployeeAggregateType<T>>

    /**
     * Group by Employee.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {EmployeeGroupByArgs} 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 EmployeeGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: EmployeeGroupByArgs['orderBy'] }
        : { orderBy?: EmployeeGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends 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 Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends 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 Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends 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 True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, EmployeeGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetEmployeeGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the Employee model
   */
  readonly fields: EmployeeFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for Employee.
   * 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__EmployeeClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    scheduleRecords<T extends Employee$scheduleRecordsArgs<ExtArgs> = {}>(args?: Subset<T, Employee$scheduleRecordsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$EmployeeSchedulePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    organization<T extends OrganizationDefaultArgs<ExtArgs> = {}>(args?: Subset<T, OrganizationDefaultArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * 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): $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): $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): $Utils.JsPromise<T>
  }




  /**
   * Fields of the Employee model
   */
  interface EmployeeFieldRefs {
    readonly id: FieldRef<"Employee", 'String'>
    readonly firstName: FieldRef<"Employee", 'String'>
    readonly lastName: FieldRef<"Employee", 'String'>
    readonly middleName: FieldRef<"Employee", 'String'>
    readonly birthDate: FieldRef<"Employee", 'DateTime'>
    readonly avatar: FieldRef<"Employee", 'String'>
    readonly passportPhoto: FieldRef<"Employee", 'String'>
    readonly passportSeries: FieldRef<"Employee", 'String'>
    readonly passportNumber: FieldRef<"Employee", 'String'>
    readonly passportIssued: FieldRef<"Employee", 'String'>
    readonly passportDate: FieldRef<"Employee", 'DateTime'>
    readonly address: FieldRef<"Employee", 'String'>
    readonly position: FieldRef<"Employee", 'String'>
    readonly department: FieldRef<"Employee", 'String'>
    readonly hireDate: FieldRef<"Employee", 'DateTime'>
    readonly salary: FieldRef<"Employee", 'Float'>
    readonly status: FieldRef<"Employee", 'EmployeeStatus'>
    readonly phone: FieldRef<"Employee", 'String'>
    readonly email: FieldRef<"Employee", 'String'>
    readonly telegram: FieldRef<"Employee", 'String'>
    readonly whatsapp: FieldRef<"Employee", 'String'>
    readonly emergencyContact: FieldRef<"Employee", 'String'>
    readonly emergencyPhone: FieldRef<"Employee", 'String'>
    readonly organizationId: FieldRef<"Employee", 'String'>
    readonly createdAt: FieldRef<"Employee", 'DateTime'>
    readonly updatedAt: FieldRef<"Employee", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * Employee findUnique
   */
  export type EmployeeFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Employee
     */
    select?: EmployeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Employee
     */
    omit?: EmployeeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EmployeeInclude<ExtArgs> | null
    /**
     * Filter, which Employee to fetch.
     */
    where: EmployeeWhereUniqueInput
  }

  /**
   * Employee findUniqueOrThrow
   */
  export type EmployeeFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Employee
     */
    select?: EmployeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Employee
     */
    omit?: EmployeeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EmployeeInclude<ExtArgs> | null
    /**
     * Filter, which Employee to fetch.
     */
    where: EmployeeWhereUniqueInput
  }

  /**
   * Employee findFirst
   */
  export type EmployeeFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Employee
     */
    select?: EmployeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Employee
     */
    omit?: EmployeeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EmployeeInclude<ExtArgs> | null
    /**
     * Filter, which Employee to fetch.
     */
    where?: EmployeeWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Employees to fetch.
     */
    orderBy?: EmployeeOrderByWithRelationInput | EmployeeOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Employees.
     */
    cursor?: EmployeeWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Employees 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` Employees.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Employees.
     */
    distinct?: EmployeeScalarFieldEnum | EmployeeScalarFieldEnum[]
  }

  /**
   * Employee findFirstOrThrow
   */
  export type EmployeeFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Employee
     */
    select?: EmployeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Employee
     */
    omit?: EmployeeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EmployeeInclude<ExtArgs> | null
    /**
     * Filter, which Employee to fetch.
     */
    where?: EmployeeWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Employees to fetch.
     */
    orderBy?: EmployeeOrderByWithRelationInput | EmployeeOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Employees.
     */
    cursor?: EmployeeWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Employees 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` Employees.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Employees.
     */
    distinct?: EmployeeScalarFieldEnum | EmployeeScalarFieldEnum[]
  }

  /**
   * Employee findMany
   */
  export type EmployeeFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Employee
     */
    select?: EmployeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Employee
     */
    omit?: EmployeeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EmployeeInclude<ExtArgs> | null
    /**
     * Filter, which Employees to fetch.
     */
    where?: EmployeeWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Employees to fetch.
     */
    orderBy?: EmployeeOrderByWithRelationInput | EmployeeOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing Employees.
     */
    cursor?: EmployeeWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Employees 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` Employees.
     */
    skip?: number
    distinct?: EmployeeScalarFieldEnum | EmployeeScalarFieldEnum[]
  }

  /**
   * Employee create
   */
  export type EmployeeCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Employee
     */
    select?: EmployeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Employee
     */
    omit?: EmployeeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EmployeeInclude<ExtArgs> | null
    /**
     * The data needed to create a Employee.
     */
    data: XOR<EmployeeCreateInput, EmployeeUncheckedCreateInput>
  }

  /**
   * Employee createMany
   */
  export type EmployeeCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many Employees.
     */
    data: EmployeeCreateManyInput | EmployeeCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Employee createManyAndReturn
   */
  export type EmployeeCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Employee
     */
    select?: EmployeeSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Employee
     */
    omit?: EmployeeOmit<ExtArgs> | null
    /**
     * The data used to create many Employees.
     */
    data: EmployeeCreateManyInput | EmployeeCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EmployeeIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * Employee update
   */
  export type EmployeeUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Employee
     */
    select?: EmployeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Employee
     */
    omit?: EmployeeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EmployeeInclude<ExtArgs> | null
    /**
     * The data needed to update a Employee.
     */
    data: XOR<EmployeeUpdateInput, EmployeeUncheckedUpdateInput>
    /**
     * Choose, which Employee to update.
     */
    where: EmployeeWhereUniqueInput
  }

  /**
   * Employee updateMany
   */
  export type EmployeeUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update Employees.
     */
    data: XOR<EmployeeUpdateManyMutationInput, EmployeeUncheckedUpdateManyInput>
    /**
     * Filter which Employees to update
     */
    where?: EmployeeWhereInput
    /**
     * Limit how many Employees to update.
     */
    limit?: number
  }

  /**
   * Employee updateManyAndReturn
   */
  export type EmployeeUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Employee
     */
    select?: EmployeeSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Employee
     */
    omit?: EmployeeOmit<ExtArgs> | null
    /**
     * The data used to update Employees.
     */
    data: XOR<EmployeeUpdateManyMutationInput, EmployeeUncheckedUpdateManyInput>
    /**
     * Filter which Employees to update
     */
    where?: EmployeeWhereInput
    /**
     * Limit how many Employees to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EmployeeIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * Employee upsert
   */
  export type EmployeeUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Employee
     */
    select?: EmployeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Employee
     */
    omit?: EmployeeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EmployeeInclude<ExtArgs> | null
    /**
     * The filter to search for the Employee to update in case it exists.
     */
    where: EmployeeWhereUniqueInput
    /**
     * In case the Employee found by the `where` argument doesn't exist, create a new Employee with this data.
     */
    create: XOR<EmployeeCreateInput, EmployeeUncheckedCreateInput>
    /**
     * In case the Employee was found with the provided `where` argument, update it with this data.
     */
    update: XOR<EmployeeUpdateInput, EmployeeUncheckedUpdateInput>
  }

  /**
   * Employee delete
   */
  export type EmployeeDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Employee
     */
    select?: EmployeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Employee
     */
    omit?: EmployeeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EmployeeInclude<ExtArgs> | null
    /**
     * Filter which Employee to delete.
     */
    where: EmployeeWhereUniqueInput
  }

  /**
   * Employee deleteMany
   */
  export type EmployeeDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Employees to delete
     */
    where?: EmployeeWhereInput
    /**
     * Limit how many Employees to delete.
     */
    limit?: number
  }

  /**
   * Employee.scheduleRecords
   */
  export type Employee$scheduleRecordsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EmployeeSchedule
     */
    select?: EmployeeScheduleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the EmployeeSchedule
     */
    omit?: EmployeeScheduleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EmployeeScheduleInclude<ExtArgs> | null
    where?: EmployeeScheduleWhereInput
    orderBy?: EmployeeScheduleOrderByWithRelationInput | EmployeeScheduleOrderByWithRelationInput[]
    cursor?: EmployeeScheduleWhereUniqueInput
    take?: number
    skip?: number
    distinct?: EmployeeScheduleScalarFieldEnum | EmployeeScheduleScalarFieldEnum[]
  }

  /**
   * Employee without action
   */
  export type EmployeeDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Employee
     */
    select?: EmployeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Employee
     */
    omit?: EmployeeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EmployeeInclude<ExtArgs> | null
  }


  /**
   * Model EmployeeSchedule
   */

  export type AggregateEmployeeSchedule = {
    _count: EmployeeScheduleCountAggregateOutputType | null
    _avg: EmployeeScheduleAvgAggregateOutputType | null
    _sum: EmployeeScheduleSumAggregateOutputType | null
    _min: EmployeeScheduleMinAggregateOutputType | null
    _max: EmployeeScheduleMaxAggregateOutputType | null
  }

  export type EmployeeScheduleAvgAggregateOutputType = {
    hoursWorked: number | null
  }

  export type EmployeeScheduleSumAggregateOutputType = {
    hoursWorked: number | null
  }

  export type EmployeeScheduleMinAggregateOutputType = {
    id: string | null
    date: Date | null
    status: $Enums.ScheduleStatus | null
    hoursWorked: number | null
    notes: string | null
    employeeId: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type EmployeeScheduleMaxAggregateOutputType = {
    id: string | null
    date: Date | null
    status: $Enums.ScheduleStatus | null
    hoursWorked: number | null
    notes: string | null
    employeeId: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type EmployeeScheduleCountAggregateOutputType = {
    id: number
    date: number
    status: number
    hoursWorked: number
    notes: number
    employeeId: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type EmployeeScheduleAvgAggregateInputType = {
    hoursWorked?: true
  }

  export type EmployeeScheduleSumAggregateInputType = {
    hoursWorked?: true
  }

  export type EmployeeScheduleMinAggregateInputType = {
    id?: true
    date?: true
    status?: true
    hoursWorked?: true
    notes?: true
    employeeId?: true
    createdAt?: true
    updatedAt?: true
  }

  export type EmployeeScheduleMaxAggregateInputType = {
    id?: true
    date?: true
    status?: true
    hoursWorked?: true
    notes?: true
    employeeId?: true
    createdAt?: true
    updatedAt?: true
  }

  export type EmployeeScheduleCountAggregateInputType = {
    id?: true
    date?: true
    status?: true
    hoursWorked?: true
    notes?: true
    employeeId?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type EmployeeScheduleAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which EmployeeSchedule to aggregate.
     */
    where?: EmployeeScheduleWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of EmployeeSchedules to fetch.
     */
    orderBy?: EmployeeScheduleOrderByWithRelationInput | EmployeeScheduleOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: EmployeeScheduleWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` EmployeeSchedules 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` EmployeeSchedules.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned EmployeeSchedules
    **/
    _count?: true | EmployeeScheduleCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: EmployeeScheduleAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: EmployeeScheduleSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: EmployeeScheduleMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: EmployeeScheduleMaxAggregateInputType
  }

  export type GetEmployeeScheduleAggregateType<T extends EmployeeScheduleAggregateArgs> = {
        [P in keyof T & keyof AggregateEmployeeSchedule]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateEmployeeSchedule[P]>
      : GetScalarType<T[P], AggregateEmployeeSchedule[P]>
  }




  export type EmployeeScheduleGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: EmployeeScheduleWhereInput
    orderBy?: EmployeeScheduleOrderByWithAggregationInput | EmployeeScheduleOrderByWithAggregationInput[]
    by: EmployeeScheduleScalarFieldEnum[] | EmployeeScheduleScalarFieldEnum
    having?: EmployeeScheduleScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: EmployeeScheduleCountAggregateInputType | true
    _avg?: EmployeeScheduleAvgAggregateInputType
    _sum?: EmployeeScheduleSumAggregateInputType
    _min?: EmployeeScheduleMinAggregateInputType
    _max?: EmployeeScheduleMaxAggregateInputType
  }

  export type EmployeeScheduleGroupByOutputType = {
    id: string
    date: Date
    status: $Enums.ScheduleStatus
    hoursWorked: number | null
    notes: string | null
    employeeId: string
    createdAt: Date
    updatedAt: Date
    _count: EmployeeScheduleCountAggregateOutputType | null
    _avg: EmployeeScheduleAvgAggregateOutputType | null
    _sum: EmployeeScheduleSumAggregateOutputType | null
    _min: EmployeeScheduleMinAggregateOutputType | null
    _max: EmployeeScheduleMaxAggregateOutputType | null
  }

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


  export type EmployeeScheduleSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    date?: boolean
    status?: boolean
    hoursWorked?: boolean
    notes?: boolean
    employeeId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    employee?: boolean | EmployeeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["employeeSchedule"]>

  export type EmployeeScheduleSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    date?: boolean
    status?: boolean
    hoursWorked?: boolean
    notes?: boolean
    employeeId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    employee?: boolean | EmployeeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["employeeSchedule"]>

  export type EmployeeScheduleSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    date?: boolean
    status?: boolean
    hoursWorked?: boolean
    notes?: boolean
    employeeId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    employee?: boolean | EmployeeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["employeeSchedule"]>

  export type EmployeeScheduleSelectScalar = {
    id?: boolean
    date?: boolean
    status?: boolean
    hoursWorked?: boolean
    notes?: boolean
    employeeId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type EmployeeScheduleOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "date" | "status" | "hoursWorked" | "notes" | "employeeId" | "createdAt" | "updatedAt", ExtArgs["result"]["employeeSchedule"]>
  export type EmployeeScheduleInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    employee?: boolean | EmployeeDefaultArgs<ExtArgs>
  }
  export type EmployeeScheduleIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    employee?: boolean | EmployeeDefaultArgs<ExtArgs>
  }
  export type EmployeeScheduleIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    employee?: boolean | EmployeeDefaultArgs<ExtArgs>
  }

  export type $EmployeeSchedulePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "EmployeeSchedule"
    objects: {
      employee: Prisma.$EmployeePayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      date: Date
      status: $Enums.ScheduleStatus
      hoursWorked: number | null
      notes: string | null
      employeeId: string
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["employeeSchedule"]>
    composites: {}
  }

  type EmployeeScheduleGetPayload<S extends boolean | null | undefined | EmployeeScheduleDefaultArgs> = $Result.GetResult<Prisma.$EmployeeSchedulePayload, S>

  type EmployeeScheduleCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<EmployeeScheduleFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: EmployeeScheduleCountAggregateInputType | true
    }

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

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

    /**
     * Find the first EmployeeSchedule 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 {EmployeeScheduleFindFirstArgs} args - Arguments to find a EmployeeSchedule
     * @example
     * // Get one EmployeeSchedule
     * const employeeSchedule = await prisma.employeeSchedule.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends EmployeeScheduleFindFirstArgs>(args?: SelectSubset<T, EmployeeScheduleFindFirstArgs<ExtArgs>>): Prisma__EmployeeScheduleClient<$Result.GetResult<Prisma.$EmployeeSchedulePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first EmployeeSchedule 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 {EmployeeScheduleFindFirstOrThrowArgs} args - Arguments to find a EmployeeSchedule
     * @example
     * // Get one EmployeeSchedule
     * const employeeSchedule = await prisma.employeeSchedule.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends EmployeeScheduleFindFirstOrThrowArgs>(args?: SelectSubset<T, EmployeeScheduleFindFirstOrThrowArgs<ExtArgs>>): Prisma__EmployeeScheduleClient<$Result.GetResult<Prisma.$EmployeeSchedulePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more EmployeeSchedules 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 {EmployeeScheduleFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all EmployeeSchedules
     * const employeeSchedules = await prisma.employeeSchedule.findMany()
     * 
     * // Get first 10 EmployeeSchedules
     * const employeeSchedules = await prisma.employeeSchedule.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const employeeScheduleWithIdOnly = await prisma.employeeSchedule.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends EmployeeScheduleFindManyArgs>(args?: SelectSubset<T, EmployeeScheduleFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$EmployeeSchedulePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a EmployeeSchedule.
     * @param {EmployeeScheduleCreateArgs} args - Arguments to create a EmployeeSchedule.
     * @example
     * // Create one EmployeeSchedule
     * const EmployeeSchedule = await prisma.employeeSchedule.create({
     *   data: {
     *     // ... data to create a EmployeeSchedule
     *   }
     * })
     * 
     */
    create<T extends EmployeeScheduleCreateArgs>(args: SelectSubset<T, EmployeeScheduleCreateArgs<ExtArgs>>): Prisma__EmployeeScheduleClient<$Result.GetResult<Prisma.$EmployeeSchedulePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

    /**
     * Create many EmployeeSchedules and returns the data saved in the database.
     * @param {EmployeeScheduleCreateManyAndReturnArgs} args - Arguments to create many EmployeeSchedules.
     * @example
     * // Create many EmployeeSchedules
     * const employeeSchedule = await prisma.employeeSchedule.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many EmployeeSchedules and only return the `id`
     * const employeeScheduleWithIdOnly = await prisma.employeeSchedule.createManyAndReturn({
     *   select: { id: true },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    createManyAndReturn<T extends EmployeeScheduleCreateManyAndReturnArgs>(args?: SelectSubset<T, EmployeeScheduleCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$EmployeeSchedulePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a EmployeeSchedule.
     * @param {EmployeeScheduleDeleteArgs} args - Arguments to delete one EmployeeSchedule.
     * @example
     * // Delete one EmployeeSchedule
     * const EmployeeSchedule = await prisma.employeeSchedule.delete({
     *   where: {
     *     // ... filter to delete one EmployeeSchedule
     *   }
     * })
     * 
     */
    delete<T extends EmployeeScheduleDeleteArgs>(args: SelectSubset<T, EmployeeScheduleDeleteArgs<ExtArgs>>): Prisma__EmployeeScheduleClient<$Result.GetResult<Prisma.$EmployeeSchedulePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one EmployeeSchedule.
     * @param {EmployeeScheduleUpdateArgs} args - Arguments to update one EmployeeSchedule.
     * @example
     * // Update one EmployeeSchedule
     * const employeeSchedule = await prisma.employeeSchedule.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends EmployeeScheduleUpdateArgs>(args: SelectSubset<T, EmployeeScheduleUpdateArgs<ExtArgs>>): Prisma__EmployeeScheduleClient<$Result.GetResult<Prisma.$EmployeeSchedulePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

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

    /**
     * Update zero or more EmployeeSchedules and returns the data updated in the database.
     * @param {EmployeeScheduleUpdateManyAndReturnArgs} args - Arguments to update many EmployeeSchedules.
     * @example
     * // Update many EmployeeSchedules
     * const employeeSchedule = await prisma.employeeSchedule.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more EmployeeSchedules and only return the `id`
     * const employeeScheduleWithIdOnly = await prisma.employeeSchedule.updateManyAndReturn({
     *   select: { id: true },
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    updateManyAndReturn<T extends EmployeeScheduleUpdateManyAndReturnArgs>(args: SelectSubset<T, EmployeeScheduleUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$EmployeeSchedulePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

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


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

    /**
     * Allows you to perform aggregations operations on a EmployeeSchedule.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {EmployeeScheduleAggregateArgs} 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 EmployeeScheduleAggregateArgs>(args: Subset<T, EmployeeScheduleAggregateArgs>): Prisma.PrismaPromise<GetEmployeeScheduleAggregateType<T>>

    /**
     * Group by EmployeeSchedule.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {EmployeeScheduleGroupByArgs} 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 EmployeeScheduleGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: EmployeeScheduleGroupByArgs['orderBy'] }
        : { orderBy?: EmployeeScheduleGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends 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 Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends 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 Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends 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 True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, EmployeeScheduleGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetEmployeeScheduleGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the EmployeeSchedule model
   */
  readonly fields: EmployeeScheduleFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for EmployeeSchedule.
   * 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__EmployeeScheduleClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    employee<T extends EmployeeDefaultArgs<ExtArgs> = {}>(args?: Subset<T, EmployeeDefaultArgs<ExtArgs>>): Prisma__EmployeeClient<$Result.GetResult<Prisma.$EmployeePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * 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): $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): $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): $Utils.JsPromise<T>
  }




  /**
   * Fields of the EmployeeSchedule model
   */
  interface EmployeeScheduleFieldRefs {
    readonly id: FieldRef<"EmployeeSchedule", 'String'>
    readonly date: FieldRef<"EmployeeSchedule", 'DateTime'>
    readonly status: FieldRef<"EmployeeSchedule", 'ScheduleStatus'>
    readonly hoursWorked: FieldRef<"EmployeeSchedule", 'Float'>
    readonly notes: FieldRef<"EmployeeSchedule", 'String'>
    readonly employeeId: FieldRef<"EmployeeSchedule", 'String'>
    readonly createdAt: FieldRef<"EmployeeSchedule", 'DateTime'>
    readonly updatedAt: FieldRef<"EmployeeSchedule", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * EmployeeSchedule findUnique
   */
  export type EmployeeScheduleFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EmployeeSchedule
     */
    select?: EmployeeScheduleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the EmployeeSchedule
     */
    omit?: EmployeeScheduleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EmployeeScheduleInclude<ExtArgs> | null
    /**
     * Filter, which EmployeeSchedule to fetch.
     */
    where: EmployeeScheduleWhereUniqueInput
  }

  /**
   * EmployeeSchedule findUniqueOrThrow
   */
  export type EmployeeScheduleFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EmployeeSchedule
     */
    select?: EmployeeScheduleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the EmployeeSchedule
     */
    omit?: EmployeeScheduleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EmployeeScheduleInclude<ExtArgs> | null
    /**
     * Filter, which EmployeeSchedule to fetch.
     */
    where: EmployeeScheduleWhereUniqueInput
  }

  /**
   * EmployeeSchedule findFirst
   */
  export type EmployeeScheduleFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EmployeeSchedule
     */
    select?: EmployeeScheduleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the EmployeeSchedule
     */
    omit?: EmployeeScheduleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EmployeeScheduleInclude<ExtArgs> | null
    /**
     * Filter, which EmployeeSchedule to fetch.
     */
    where?: EmployeeScheduleWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of EmployeeSchedules to fetch.
     */
    orderBy?: EmployeeScheduleOrderByWithRelationInput | EmployeeScheduleOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for EmployeeSchedules.
     */
    cursor?: EmployeeScheduleWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` EmployeeSchedules 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` EmployeeSchedules.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of EmployeeSchedules.
     */
    distinct?: EmployeeScheduleScalarFieldEnum | EmployeeScheduleScalarFieldEnum[]
  }

  /**
   * EmployeeSchedule findFirstOrThrow
   */
  export type EmployeeScheduleFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EmployeeSchedule
     */
    select?: EmployeeScheduleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the EmployeeSchedule
     */
    omit?: EmployeeScheduleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EmployeeScheduleInclude<ExtArgs> | null
    /**
     * Filter, which EmployeeSchedule to fetch.
     */
    where?: EmployeeScheduleWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of EmployeeSchedules to fetch.
     */
    orderBy?: EmployeeScheduleOrderByWithRelationInput | EmployeeScheduleOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for EmployeeSchedules.
     */
    cursor?: EmployeeScheduleWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` EmployeeSchedules 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` EmployeeSchedules.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of EmployeeSchedules.
     */
    distinct?: EmployeeScheduleScalarFieldEnum | EmployeeScheduleScalarFieldEnum[]
  }

  /**
   * EmployeeSchedule findMany
   */
  export type EmployeeScheduleFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EmployeeSchedule
     */
    select?: EmployeeScheduleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the EmployeeSchedule
     */
    omit?: EmployeeScheduleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EmployeeScheduleInclude<ExtArgs> | null
    /**
     * Filter, which EmployeeSchedules to fetch.
     */
    where?: EmployeeScheduleWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of EmployeeSchedules to fetch.
     */
    orderBy?: EmployeeScheduleOrderByWithRelationInput | EmployeeScheduleOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing EmployeeSchedules.
     */
    cursor?: EmployeeScheduleWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` EmployeeSchedules 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` EmployeeSchedules.
     */
    skip?: number
    distinct?: EmployeeScheduleScalarFieldEnum | EmployeeScheduleScalarFieldEnum[]
  }

  /**
   * EmployeeSchedule create
   */
  export type EmployeeScheduleCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EmployeeSchedule
     */
    select?: EmployeeScheduleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the EmployeeSchedule
     */
    omit?: EmployeeScheduleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EmployeeScheduleInclude<ExtArgs> | null
    /**
     * The data needed to create a EmployeeSchedule.
     */
    data: XOR<EmployeeScheduleCreateInput, EmployeeScheduleUncheckedCreateInput>
  }

  /**
   * EmployeeSchedule createMany
   */
  export type EmployeeScheduleCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many EmployeeSchedules.
     */
    data: EmployeeScheduleCreateManyInput | EmployeeScheduleCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * EmployeeSchedule createManyAndReturn
   */
  export type EmployeeScheduleCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EmployeeSchedule
     */
    select?: EmployeeScheduleSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the EmployeeSchedule
     */
    omit?: EmployeeScheduleOmit<ExtArgs> | null
    /**
     * The data used to create many EmployeeSchedules.
     */
    data: EmployeeScheduleCreateManyInput | EmployeeScheduleCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EmployeeScheduleIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * EmployeeSchedule update
   */
  export type EmployeeScheduleUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EmployeeSchedule
     */
    select?: EmployeeScheduleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the EmployeeSchedule
     */
    omit?: EmployeeScheduleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EmployeeScheduleInclude<ExtArgs> | null
    /**
     * The data needed to update a EmployeeSchedule.
     */
    data: XOR<EmployeeScheduleUpdateInput, EmployeeScheduleUncheckedUpdateInput>
    /**
     * Choose, which EmployeeSchedule to update.
     */
    where: EmployeeScheduleWhereUniqueInput
  }

  /**
   * EmployeeSchedule updateMany
   */
  export type EmployeeScheduleUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update EmployeeSchedules.
     */
    data: XOR<EmployeeScheduleUpdateManyMutationInput, EmployeeScheduleUncheckedUpdateManyInput>
    /**
     * Filter which EmployeeSchedules to update
     */
    where?: EmployeeScheduleWhereInput
    /**
     * Limit how many EmployeeSchedules to update.
     */
    limit?: number
  }

  /**
   * EmployeeSchedule updateManyAndReturn
   */
  export type EmployeeScheduleUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EmployeeSchedule
     */
    select?: EmployeeScheduleSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the EmployeeSchedule
     */
    omit?: EmployeeScheduleOmit<ExtArgs> | null
    /**
     * The data used to update EmployeeSchedules.
     */
    data: XOR<EmployeeScheduleUpdateManyMutationInput, EmployeeScheduleUncheckedUpdateManyInput>
    /**
     * Filter which EmployeeSchedules to update
     */
    where?: EmployeeScheduleWhereInput
    /**
     * Limit how many EmployeeSchedules to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EmployeeScheduleIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * EmployeeSchedule upsert
   */
  export type EmployeeScheduleUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EmployeeSchedule
     */
    select?: EmployeeScheduleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the EmployeeSchedule
     */
    omit?: EmployeeScheduleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EmployeeScheduleInclude<ExtArgs> | null
    /**
     * The filter to search for the EmployeeSchedule to update in case it exists.
     */
    where: EmployeeScheduleWhereUniqueInput
    /**
     * In case the EmployeeSchedule found by the `where` argument doesn't exist, create a new EmployeeSchedule with this data.
     */
    create: XOR<EmployeeScheduleCreateInput, EmployeeScheduleUncheckedCreateInput>
    /**
     * In case the EmployeeSchedule was found with the provided `where` argument, update it with this data.
     */
    update: XOR<EmployeeScheduleUpdateInput, EmployeeScheduleUncheckedUpdateInput>
  }

  /**
   * EmployeeSchedule delete
   */
  export type EmployeeScheduleDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EmployeeSchedule
     */
    select?: EmployeeScheduleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the EmployeeSchedule
     */
    omit?: EmployeeScheduleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EmployeeScheduleInclude<ExtArgs> | null
    /**
     * Filter which EmployeeSchedule to delete.
     */
    where: EmployeeScheduleWhereUniqueInput
  }

  /**
   * EmployeeSchedule deleteMany
   */
  export type EmployeeScheduleDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which EmployeeSchedules to delete
     */
    where?: EmployeeScheduleWhereInput
    /**
     * Limit how many EmployeeSchedules to delete.
     */
    limit?: number
  }

  /**
   * EmployeeSchedule without action
   */
  export type EmployeeScheduleDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EmployeeSchedule
     */
    select?: EmployeeScheduleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the EmployeeSchedule
     */
    omit?: EmployeeScheduleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EmployeeScheduleInclude<ExtArgs> | null
  }


  /**
   * Model WildberriesSupply
   */

  export type AggregateWildberriesSupply = {
    _count: WildberriesSupplyCountAggregateOutputType | null
    _avg: WildberriesSupplyAvgAggregateOutputType | null
    _sum: WildberriesSupplySumAggregateOutputType | null
    _min: WildberriesSupplyMinAggregateOutputType | null
    _max: WildberriesSupplyMaxAggregateOutputType | null
  }

  export type WildberriesSupplyAvgAggregateOutputType = {
    totalAmount: Decimal | null
    totalItems: number | null
  }

  export type WildberriesSupplySumAggregateOutputType = {
    totalAmount: Decimal | null
    totalItems: number | null
  }

  export type WildberriesSupplyMinAggregateOutputType = {
    id: string | null
    organizationId: string | null
    deliveryDate: Date | null
    status: $Enums.WildberriesSupplyStatus | null
    totalAmount: Decimal | null
    totalItems: number | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type WildberriesSupplyMaxAggregateOutputType = {
    id: string | null
    organizationId: string | null
    deliveryDate: Date | null
    status: $Enums.WildberriesSupplyStatus | null
    totalAmount: Decimal | null
    totalItems: number | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type WildberriesSupplyCountAggregateOutputType = {
    id: number
    organizationId: number
    deliveryDate: number
    status: number
    totalAmount: number
    totalItems: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type WildberriesSupplyAvgAggregateInputType = {
    totalAmount?: true
    totalItems?: true
  }

  export type WildberriesSupplySumAggregateInputType = {
    totalAmount?: true
    totalItems?: true
  }

  export type WildberriesSupplyMinAggregateInputType = {
    id?: true
    organizationId?: true
    deliveryDate?: true
    status?: true
    totalAmount?: true
    totalItems?: true
    createdAt?: true
    updatedAt?: true
  }

  export type WildberriesSupplyMaxAggregateInputType = {
    id?: true
    organizationId?: true
    deliveryDate?: true
    status?: true
    totalAmount?: true
    totalItems?: true
    createdAt?: true
    updatedAt?: true
  }

  export type WildberriesSupplyCountAggregateInputType = {
    id?: true
    organizationId?: true
    deliveryDate?: true
    status?: true
    totalAmount?: true
    totalItems?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type WildberriesSupplyAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which WildberriesSupply to aggregate.
     */
    where?: WildberriesSupplyWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of WildberriesSupplies to fetch.
     */
    orderBy?: WildberriesSupplyOrderByWithRelationInput | WildberriesSupplyOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: WildberriesSupplyWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` WildberriesSupplies 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` WildberriesSupplies.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned WildberriesSupplies
    **/
    _count?: true | WildberriesSupplyCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: WildberriesSupplyAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: WildberriesSupplySumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: WildberriesSupplyMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: WildberriesSupplyMaxAggregateInputType
  }

  export type GetWildberriesSupplyAggregateType<T extends WildberriesSupplyAggregateArgs> = {
        [P in keyof T & keyof AggregateWildberriesSupply]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateWildberriesSupply[P]>
      : GetScalarType<T[P], AggregateWildberriesSupply[P]>
  }




  export type WildberriesSupplyGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: WildberriesSupplyWhereInput
    orderBy?: WildberriesSupplyOrderByWithAggregationInput | WildberriesSupplyOrderByWithAggregationInput[]
    by: WildberriesSupplyScalarFieldEnum[] | WildberriesSupplyScalarFieldEnum
    having?: WildberriesSupplyScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: WildberriesSupplyCountAggregateInputType | true
    _avg?: WildberriesSupplyAvgAggregateInputType
    _sum?: WildberriesSupplySumAggregateInputType
    _min?: WildberriesSupplyMinAggregateInputType
    _max?: WildberriesSupplyMaxAggregateInputType
  }

  export type WildberriesSupplyGroupByOutputType = {
    id: string
    organizationId: string
    deliveryDate: Date | null
    status: $Enums.WildberriesSupplyStatus
    totalAmount: Decimal
    totalItems: number
    createdAt: Date
    updatedAt: Date
    _count: WildberriesSupplyCountAggregateOutputType | null
    _avg: WildberriesSupplyAvgAggregateOutputType | null
    _sum: WildberriesSupplySumAggregateOutputType | null
    _min: WildberriesSupplyMinAggregateOutputType | null
    _max: WildberriesSupplyMaxAggregateOutputType | null
  }

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


  export type WildberriesSupplySelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    deliveryDate?: boolean
    status?: boolean
    totalAmount?: boolean
    totalItems?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
    cards?: boolean | WildberriesSupply$cardsArgs<ExtArgs>
    _count?: boolean | WildberriesSupplyCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["wildberriesSupply"]>

  export type WildberriesSupplySelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    deliveryDate?: boolean
    status?: boolean
    totalAmount?: boolean
    totalItems?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["wildberriesSupply"]>

  export type WildberriesSupplySelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    deliveryDate?: boolean
    status?: boolean
    totalAmount?: boolean
    totalItems?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["wildberriesSupply"]>

  export type WildberriesSupplySelectScalar = {
    id?: boolean
    organizationId?: boolean
    deliveryDate?: boolean
    status?: boolean
    totalAmount?: boolean
    totalItems?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type WildberriesSupplyOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "organizationId" | "deliveryDate" | "status" | "totalAmount" | "totalItems" | "createdAt" | "updatedAt", ExtArgs["result"]["wildberriesSupply"]>
  export type WildberriesSupplyInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
    cards?: boolean | WildberriesSupply$cardsArgs<ExtArgs>
    _count?: boolean | WildberriesSupplyCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type WildberriesSupplyIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }
  export type WildberriesSupplyIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }

  export type $WildberriesSupplyPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "WildberriesSupply"
    objects: {
      organization: Prisma.$OrganizationPayload<ExtArgs>
      cards: Prisma.$WildberriesSupplyCardPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      organizationId: string
      deliveryDate: Date | null
      status: $Enums.WildberriesSupplyStatus
      totalAmount: Prisma.Decimal
      totalItems: number
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["wildberriesSupply"]>
    composites: {}
  }

  type WildberriesSupplyGetPayload<S extends boolean | null | undefined | WildberriesSupplyDefaultArgs> = $Result.GetResult<Prisma.$WildberriesSupplyPayload, S>

  type WildberriesSupplyCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<WildberriesSupplyFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: WildberriesSupplyCountAggregateInputType | true
    }

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

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

    /**
     * Find the first WildberriesSupply 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 {WildberriesSupplyFindFirstArgs} args - Arguments to find a WildberriesSupply
     * @example
     * // Get one WildberriesSupply
     * const wildberriesSupply = await prisma.wildberriesSupply.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends WildberriesSupplyFindFirstArgs>(args?: SelectSubset<T, WildberriesSupplyFindFirstArgs<ExtArgs>>): Prisma__WildberriesSupplyClient<$Result.GetResult<Prisma.$WildberriesSupplyPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first WildberriesSupply 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 {WildberriesSupplyFindFirstOrThrowArgs} args - Arguments to find a WildberriesSupply
     * @example
     * // Get one WildberriesSupply
     * const wildberriesSupply = await prisma.wildberriesSupply.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends WildberriesSupplyFindFirstOrThrowArgs>(args?: SelectSubset<T, WildberriesSupplyFindFirstOrThrowArgs<ExtArgs>>): Prisma__WildberriesSupplyClient<$Result.GetResult<Prisma.$WildberriesSupplyPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more WildberriesSupplies 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 {WildberriesSupplyFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all WildberriesSupplies
     * const wildberriesSupplies = await prisma.wildberriesSupply.findMany()
     * 
     * // Get first 10 WildberriesSupplies
     * const wildberriesSupplies = await prisma.wildberriesSupply.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const wildberriesSupplyWithIdOnly = await prisma.wildberriesSupply.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends WildberriesSupplyFindManyArgs>(args?: SelectSubset<T, WildberriesSupplyFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$WildberriesSupplyPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a WildberriesSupply.
     * @param {WildberriesSupplyCreateArgs} args - Arguments to create a WildberriesSupply.
     * @example
     * // Create one WildberriesSupply
     * const WildberriesSupply = await prisma.wildberriesSupply.create({
     *   data: {
     *     // ... data to create a WildberriesSupply
     *   }
     * })
     * 
     */
    create<T extends WildberriesSupplyCreateArgs>(args: SelectSubset<T, WildberriesSupplyCreateArgs<ExtArgs>>): Prisma__WildberriesSupplyClient<$Result.GetResult<Prisma.$WildberriesSupplyPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

    /**
     * Create many WildberriesSupplies and returns the data saved in the database.
     * @param {WildberriesSupplyCreateManyAndReturnArgs} args - Arguments to create many WildberriesSupplies.
     * @example
     * // Create many WildberriesSupplies
     * const wildberriesSupply = await prisma.wildberriesSupply.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many WildberriesSupplies and only return the `id`
     * const wildberriesSupplyWithIdOnly = await prisma.wildberriesSupply.createManyAndReturn({
     *   select: { id: true },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    createManyAndReturn<T extends WildberriesSupplyCreateManyAndReturnArgs>(args?: SelectSubset<T, WildberriesSupplyCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$WildberriesSupplyPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a WildberriesSupply.
     * @param {WildberriesSupplyDeleteArgs} args - Arguments to delete one WildberriesSupply.
     * @example
     * // Delete one WildberriesSupply
     * const WildberriesSupply = await prisma.wildberriesSupply.delete({
     *   where: {
     *     // ... filter to delete one WildberriesSupply
     *   }
     * })
     * 
     */
    delete<T extends WildberriesSupplyDeleteArgs>(args: SelectSubset<T, WildberriesSupplyDeleteArgs<ExtArgs>>): Prisma__WildberriesSupplyClient<$Result.GetResult<Prisma.$WildberriesSupplyPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one WildberriesSupply.
     * @param {WildberriesSupplyUpdateArgs} args - Arguments to update one WildberriesSupply.
     * @example
     * // Update one WildberriesSupply
     * const wildberriesSupply = await prisma.wildberriesSupply.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends WildberriesSupplyUpdateArgs>(args: SelectSubset<T, WildberriesSupplyUpdateArgs<ExtArgs>>): Prisma__WildberriesSupplyClient<$Result.GetResult<Prisma.$WildberriesSupplyPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

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

    /**
     * Update zero or more WildberriesSupplies and returns the data updated in the database.
     * @param {WildberriesSupplyUpdateManyAndReturnArgs} args - Arguments to update many WildberriesSupplies.
     * @example
     * // Update many WildberriesSupplies
     * const wildberriesSupply = await prisma.wildberriesSupply.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more WildberriesSupplies and only return the `id`
     * const wildberriesSupplyWithIdOnly = await prisma.wildberriesSupply.updateManyAndReturn({
     *   select: { id: true },
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    updateManyAndReturn<T extends WildberriesSupplyUpdateManyAndReturnArgs>(args: SelectSubset<T, WildberriesSupplyUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$WildberriesSupplyPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

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


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

    /**
     * Allows you to perform aggregations operations on a WildberriesSupply.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {WildberriesSupplyAggregateArgs} 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 WildberriesSupplyAggregateArgs>(args: Subset<T, WildberriesSupplyAggregateArgs>): Prisma.PrismaPromise<GetWildberriesSupplyAggregateType<T>>

    /**
     * Group by WildberriesSupply.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {WildberriesSupplyGroupByArgs} 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 WildberriesSupplyGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: WildberriesSupplyGroupByArgs['orderBy'] }
        : { orderBy?: WildberriesSupplyGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends 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 Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends 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 Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends 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 True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, WildberriesSupplyGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetWildberriesSupplyGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the WildberriesSupply model
   */
  readonly fields: WildberriesSupplyFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for WildberriesSupply.
   * 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__WildberriesSupplyClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    organization<T extends OrganizationDefaultArgs<ExtArgs> = {}>(args?: Subset<T, OrganizationDefaultArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    cards<T extends WildberriesSupply$cardsArgs<ExtArgs> = {}>(args?: Subset<T, WildberriesSupply$cardsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$WildberriesSupplyCardPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * 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): $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): $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): $Utils.JsPromise<T>
  }




  /**
   * Fields of the WildberriesSupply model
   */
  interface WildberriesSupplyFieldRefs {
    readonly id: FieldRef<"WildberriesSupply", 'String'>
    readonly organizationId: FieldRef<"WildberriesSupply", 'String'>
    readonly deliveryDate: FieldRef<"WildberriesSupply", 'DateTime'>
    readonly status: FieldRef<"WildberriesSupply", 'WildberriesSupplyStatus'>
    readonly totalAmount: FieldRef<"WildberriesSupply", 'Decimal'>
    readonly totalItems: FieldRef<"WildberriesSupply", 'Int'>
    readonly createdAt: FieldRef<"WildberriesSupply", 'DateTime'>
    readonly updatedAt: FieldRef<"WildberriesSupply", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * WildberriesSupply findUnique
   */
  export type WildberriesSupplyFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WildberriesSupply
     */
    select?: WildberriesSupplySelect<ExtArgs> | null
    /**
     * Omit specific fields from the WildberriesSupply
     */
    omit?: WildberriesSupplyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WildberriesSupplyInclude<ExtArgs> | null
    /**
     * Filter, which WildberriesSupply to fetch.
     */
    where: WildberriesSupplyWhereUniqueInput
  }

  /**
   * WildberriesSupply findUniqueOrThrow
   */
  export type WildberriesSupplyFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WildberriesSupply
     */
    select?: WildberriesSupplySelect<ExtArgs> | null
    /**
     * Omit specific fields from the WildberriesSupply
     */
    omit?: WildberriesSupplyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WildberriesSupplyInclude<ExtArgs> | null
    /**
     * Filter, which WildberriesSupply to fetch.
     */
    where: WildberriesSupplyWhereUniqueInput
  }

  /**
   * WildberriesSupply findFirst
   */
  export type WildberriesSupplyFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WildberriesSupply
     */
    select?: WildberriesSupplySelect<ExtArgs> | null
    /**
     * Omit specific fields from the WildberriesSupply
     */
    omit?: WildberriesSupplyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WildberriesSupplyInclude<ExtArgs> | null
    /**
     * Filter, which WildberriesSupply to fetch.
     */
    where?: WildberriesSupplyWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of WildberriesSupplies to fetch.
     */
    orderBy?: WildberriesSupplyOrderByWithRelationInput | WildberriesSupplyOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for WildberriesSupplies.
     */
    cursor?: WildberriesSupplyWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` WildberriesSupplies 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` WildberriesSupplies.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of WildberriesSupplies.
     */
    distinct?: WildberriesSupplyScalarFieldEnum | WildberriesSupplyScalarFieldEnum[]
  }

  /**
   * WildberriesSupply findFirstOrThrow
   */
  export type WildberriesSupplyFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WildberriesSupply
     */
    select?: WildberriesSupplySelect<ExtArgs> | null
    /**
     * Omit specific fields from the WildberriesSupply
     */
    omit?: WildberriesSupplyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WildberriesSupplyInclude<ExtArgs> | null
    /**
     * Filter, which WildberriesSupply to fetch.
     */
    where?: WildberriesSupplyWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of WildberriesSupplies to fetch.
     */
    orderBy?: WildberriesSupplyOrderByWithRelationInput | WildberriesSupplyOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for WildberriesSupplies.
     */
    cursor?: WildberriesSupplyWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` WildberriesSupplies 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` WildberriesSupplies.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of WildberriesSupplies.
     */
    distinct?: WildberriesSupplyScalarFieldEnum | WildberriesSupplyScalarFieldEnum[]
  }

  /**
   * WildberriesSupply findMany
   */
  export type WildberriesSupplyFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WildberriesSupply
     */
    select?: WildberriesSupplySelect<ExtArgs> | null
    /**
     * Omit specific fields from the WildberriesSupply
     */
    omit?: WildberriesSupplyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WildberriesSupplyInclude<ExtArgs> | null
    /**
     * Filter, which WildberriesSupplies to fetch.
     */
    where?: WildberriesSupplyWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of WildberriesSupplies to fetch.
     */
    orderBy?: WildberriesSupplyOrderByWithRelationInput | WildberriesSupplyOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing WildberriesSupplies.
     */
    cursor?: WildberriesSupplyWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` WildberriesSupplies 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` WildberriesSupplies.
     */
    skip?: number
    distinct?: WildberriesSupplyScalarFieldEnum | WildberriesSupplyScalarFieldEnum[]
  }

  /**
   * WildberriesSupply create
   */
  export type WildberriesSupplyCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WildberriesSupply
     */
    select?: WildberriesSupplySelect<ExtArgs> | null
    /**
     * Omit specific fields from the WildberriesSupply
     */
    omit?: WildberriesSupplyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WildberriesSupplyInclude<ExtArgs> | null
    /**
     * The data needed to create a WildberriesSupply.
     */
    data: XOR<WildberriesSupplyCreateInput, WildberriesSupplyUncheckedCreateInput>
  }

  /**
   * WildberriesSupply createMany
   */
  export type WildberriesSupplyCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many WildberriesSupplies.
     */
    data: WildberriesSupplyCreateManyInput | WildberriesSupplyCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * WildberriesSupply createManyAndReturn
   */
  export type WildberriesSupplyCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WildberriesSupply
     */
    select?: WildberriesSupplySelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the WildberriesSupply
     */
    omit?: WildberriesSupplyOmit<ExtArgs> | null
    /**
     * The data used to create many WildberriesSupplies.
     */
    data: WildberriesSupplyCreateManyInput | WildberriesSupplyCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WildberriesSupplyIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * WildberriesSupply update
   */
  export type WildberriesSupplyUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WildberriesSupply
     */
    select?: WildberriesSupplySelect<ExtArgs> | null
    /**
     * Omit specific fields from the WildberriesSupply
     */
    omit?: WildberriesSupplyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WildberriesSupplyInclude<ExtArgs> | null
    /**
     * The data needed to update a WildberriesSupply.
     */
    data: XOR<WildberriesSupplyUpdateInput, WildberriesSupplyUncheckedUpdateInput>
    /**
     * Choose, which WildberriesSupply to update.
     */
    where: WildberriesSupplyWhereUniqueInput
  }

  /**
   * WildberriesSupply updateMany
   */
  export type WildberriesSupplyUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update WildberriesSupplies.
     */
    data: XOR<WildberriesSupplyUpdateManyMutationInput, WildberriesSupplyUncheckedUpdateManyInput>
    /**
     * Filter which WildberriesSupplies to update
     */
    where?: WildberriesSupplyWhereInput
    /**
     * Limit how many WildberriesSupplies to update.
     */
    limit?: number
  }

  /**
   * WildberriesSupply updateManyAndReturn
   */
  export type WildberriesSupplyUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WildberriesSupply
     */
    select?: WildberriesSupplySelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the WildberriesSupply
     */
    omit?: WildberriesSupplyOmit<ExtArgs> | null
    /**
     * The data used to update WildberriesSupplies.
     */
    data: XOR<WildberriesSupplyUpdateManyMutationInput, WildberriesSupplyUncheckedUpdateManyInput>
    /**
     * Filter which WildberriesSupplies to update
     */
    where?: WildberriesSupplyWhereInput
    /**
     * Limit how many WildberriesSupplies to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WildberriesSupplyIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * WildberriesSupply upsert
   */
  export type WildberriesSupplyUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WildberriesSupply
     */
    select?: WildberriesSupplySelect<ExtArgs> | null
    /**
     * Omit specific fields from the WildberriesSupply
     */
    omit?: WildberriesSupplyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WildberriesSupplyInclude<ExtArgs> | null
    /**
     * The filter to search for the WildberriesSupply to update in case it exists.
     */
    where: WildberriesSupplyWhereUniqueInput
    /**
     * In case the WildberriesSupply found by the `where` argument doesn't exist, create a new WildberriesSupply with this data.
     */
    create: XOR<WildberriesSupplyCreateInput, WildberriesSupplyUncheckedCreateInput>
    /**
     * In case the WildberriesSupply was found with the provided `where` argument, update it with this data.
     */
    update: XOR<WildberriesSupplyUpdateInput, WildberriesSupplyUncheckedUpdateInput>
  }

  /**
   * WildberriesSupply delete
   */
  export type WildberriesSupplyDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WildberriesSupply
     */
    select?: WildberriesSupplySelect<ExtArgs> | null
    /**
     * Omit specific fields from the WildberriesSupply
     */
    omit?: WildberriesSupplyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WildberriesSupplyInclude<ExtArgs> | null
    /**
     * Filter which WildberriesSupply to delete.
     */
    where: WildberriesSupplyWhereUniqueInput
  }

  /**
   * WildberriesSupply deleteMany
   */
  export type WildberriesSupplyDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which WildberriesSupplies to delete
     */
    where?: WildberriesSupplyWhereInput
    /**
     * Limit how many WildberriesSupplies to delete.
     */
    limit?: number
  }

  /**
   * WildberriesSupply.cards
   */
  export type WildberriesSupply$cardsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WildberriesSupplyCard
     */
    select?: WildberriesSupplyCardSelect<ExtArgs> | null
    /**
     * Omit specific fields from the WildberriesSupplyCard
     */
    omit?: WildberriesSupplyCardOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WildberriesSupplyCardInclude<ExtArgs> | null
    where?: WildberriesSupplyCardWhereInput
    orderBy?: WildberriesSupplyCardOrderByWithRelationInput | WildberriesSupplyCardOrderByWithRelationInput[]
    cursor?: WildberriesSupplyCardWhereUniqueInput
    take?: number
    skip?: number
    distinct?: WildberriesSupplyCardScalarFieldEnum | WildberriesSupplyCardScalarFieldEnum[]
  }

  /**
   * WildberriesSupply without action
   */
  export type WildberriesSupplyDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WildberriesSupply
     */
    select?: WildberriesSupplySelect<ExtArgs> | null
    /**
     * Omit specific fields from the WildberriesSupply
     */
    omit?: WildberriesSupplyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WildberriesSupplyInclude<ExtArgs> | null
  }


  /**
   * Model WildberriesSupplyCard
   */

  export type AggregateWildberriesSupplyCard = {
    _count: WildberriesSupplyCardCountAggregateOutputType | null
    _avg: WildberriesSupplyCardAvgAggregateOutputType | null
    _sum: WildberriesSupplyCardSumAggregateOutputType | null
    _min: WildberriesSupplyCardMinAggregateOutputType | null
    _max: WildberriesSupplyCardMaxAggregateOutputType | null
  }

  export type WildberriesSupplyCardAvgAggregateOutputType = {
    price: Decimal | null
    discountedPrice: Decimal | null
    quantity: number | null
    selectedQuantity: number | null
  }

  export type WildberriesSupplyCardSumAggregateOutputType = {
    price: Decimal | null
    discountedPrice: Decimal | null
    quantity: number | null
    selectedQuantity: number | null
  }

  export type WildberriesSupplyCardMinAggregateOutputType = {
    id: string | null
    supplyId: string | null
    nmId: string | null
    vendorCode: string | null
    title: string | null
    brand: string | null
    price: Decimal | null
    discountedPrice: Decimal | null
    quantity: number | null
    selectedQuantity: number | null
    selectedMarket: string | null
    selectedPlace: string | null
    sellerName: string | null
    sellerPhone: string | null
    deliveryDate: Date | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type WildberriesSupplyCardMaxAggregateOutputType = {
    id: string | null
    supplyId: string | null
    nmId: string | null
    vendorCode: string | null
    title: string | null
    brand: string | null
    price: Decimal | null
    discountedPrice: Decimal | null
    quantity: number | null
    selectedQuantity: number | null
    selectedMarket: string | null
    selectedPlace: string | null
    sellerName: string | null
    sellerPhone: string | null
    deliveryDate: Date | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type WildberriesSupplyCardCountAggregateOutputType = {
    id: number
    supplyId: number
    nmId: number
    vendorCode: number
    title: number
    brand: number
    price: number
    discountedPrice: number
    quantity: number
    selectedQuantity: number
    selectedMarket: number
    selectedPlace: number
    sellerName: number
    sellerPhone: number
    deliveryDate: number
    mediaFiles: number
    selectedServices: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type WildberriesSupplyCardAvgAggregateInputType = {
    price?: true
    discountedPrice?: true
    quantity?: true
    selectedQuantity?: true
  }

  export type WildberriesSupplyCardSumAggregateInputType = {
    price?: true
    discountedPrice?: true
    quantity?: true
    selectedQuantity?: true
  }

  export type WildberriesSupplyCardMinAggregateInputType = {
    id?: true
    supplyId?: true
    nmId?: true
    vendorCode?: true
    title?: true
    brand?: true
    price?: true
    discountedPrice?: true
    quantity?: true
    selectedQuantity?: true
    selectedMarket?: true
    selectedPlace?: true
    sellerName?: true
    sellerPhone?: true
    deliveryDate?: true
    createdAt?: true
    updatedAt?: true
  }

  export type WildberriesSupplyCardMaxAggregateInputType = {
    id?: true
    supplyId?: true
    nmId?: true
    vendorCode?: true
    title?: true
    brand?: true
    price?: true
    discountedPrice?: true
    quantity?: true
    selectedQuantity?: true
    selectedMarket?: true
    selectedPlace?: true
    sellerName?: true
    sellerPhone?: true
    deliveryDate?: true
    createdAt?: true
    updatedAt?: true
  }

  export type WildberriesSupplyCardCountAggregateInputType = {
    id?: true
    supplyId?: true
    nmId?: true
    vendorCode?: true
    title?: true
    brand?: true
    price?: true
    discountedPrice?: true
    quantity?: true
    selectedQuantity?: true
    selectedMarket?: true
    selectedPlace?: true
    sellerName?: true
    sellerPhone?: true
    deliveryDate?: true
    mediaFiles?: true
    selectedServices?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type WildberriesSupplyCardAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which WildberriesSupplyCard to aggregate.
     */
    where?: WildberriesSupplyCardWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of WildberriesSupplyCards to fetch.
     */
    orderBy?: WildberriesSupplyCardOrderByWithRelationInput | WildberriesSupplyCardOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: WildberriesSupplyCardWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` WildberriesSupplyCards 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` WildberriesSupplyCards.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned WildberriesSupplyCards
    **/
    _count?: true | WildberriesSupplyCardCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: WildberriesSupplyCardAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: WildberriesSupplyCardSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: WildberriesSupplyCardMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: WildberriesSupplyCardMaxAggregateInputType
  }

  export type GetWildberriesSupplyCardAggregateType<T extends WildberriesSupplyCardAggregateArgs> = {
        [P in keyof T & keyof AggregateWildberriesSupplyCard]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateWildberriesSupplyCard[P]>
      : GetScalarType<T[P], AggregateWildberriesSupplyCard[P]>
  }




  export type WildberriesSupplyCardGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: WildberriesSupplyCardWhereInput
    orderBy?: WildberriesSupplyCardOrderByWithAggregationInput | WildberriesSupplyCardOrderByWithAggregationInput[]
    by: WildberriesSupplyCardScalarFieldEnum[] | WildberriesSupplyCardScalarFieldEnum
    having?: WildberriesSupplyCardScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: WildberriesSupplyCardCountAggregateInputType | true
    _avg?: WildberriesSupplyCardAvgAggregateInputType
    _sum?: WildberriesSupplyCardSumAggregateInputType
    _min?: WildberriesSupplyCardMinAggregateInputType
    _max?: WildberriesSupplyCardMaxAggregateInputType
  }

  export type WildberriesSupplyCardGroupByOutputType = {
    id: string
    supplyId: string
    nmId: string
    vendorCode: string
    title: string
    brand: string | null
    price: Decimal
    discountedPrice: Decimal | null
    quantity: number
    selectedQuantity: number
    selectedMarket: string | null
    selectedPlace: string | null
    sellerName: string | null
    sellerPhone: string | null
    deliveryDate: Date | null
    mediaFiles: JsonValue
    selectedServices: JsonValue
    createdAt: Date
    updatedAt: Date
    _count: WildberriesSupplyCardCountAggregateOutputType | null
    _avg: WildberriesSupplyCardAvgAggregateOutputType | null
    _sum: WildberriesSupplyCardSumAggregateOutputType | null
    _min: WildberriesSupplyCardMinAggregateOutputType | null
    _max: WildberriesSupplyCardMaxAggregateOutputType | null
  }

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


  export type WildberriesSupplyCardSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    supplyId?: boolean
    nmId?: boolean
    vendorCode?: boolean
    title?: boolean
    brand?: boolean
    price?: boolean
    discountedPrice?: boolean
    quantity?: boolean
    selectedQuantity?: boolean
    selectedMarket?: boolean
    selectedPlace?: boolean
    sellerName?: boolean
    sellerPhone?: boolean
    deliveryDate?: boolean
    mediaFiles?: boolean
    selectedServices?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    supply?: boolean | WildberriesSupplyDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["wildberriesSupplyCard"]>

  export type WildberriesSupplyCardSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    supplyId?: boolean
    nmId?: boolean
    vendorCode?: boolean
    title?: boolean
    brand?: boolean
    price?: boolean
    discountedPrice?: boolean
    quantity?: boolean
    selectedQuantity?: boolean
    selectedMarket?: boolean
    selectedPlace?: boolean
    sellerName?: boolean
    sellerPhone?: boolean
    deliveryDate?: boolean
    mediaFiles?: boolean
    selectedServices?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    supply?: boolean | WildberriesSupplyDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["wildberriesSupplyCard"]>

  export type WildberriesSupplyCardSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    supplyId?: boolean
    nmId?: boolean
    vendorCode?: boolean
    title?: boolean
    brand?: boolean
    price?: boolean
    discountedPrice?: boolean
    quantity?: boolean
    selectedQuantity?: boolean
    selectedMarket?: boolean
    selectedPlace?: boolean
    sellerName?: boolean
    sellerPhone?: boolean
    deliveryDate?: boolean
    mediaFiles?: boolean
    selectedServices?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    supply?: boolean | WildberriesSupplyDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["wildberriesSupplyCard"]>

  export type WildberriesSupplyCardSelectScalar = {
    id?: boolean
    supplyId?: boolean
    nmId?: boolean
    vendorCode?: boolean
    title?: boolean
    brand?: boolean
    price?: boolean
    discountedPrice?: boolean
    quantity?: boolean
    selectedQuantity?: boolean
    selectedMarket?: boolean
    selectedPlace?: boolean
    sellerName?: boolean
    sellerPhone?: boolean
    deliveryDate?: boolean
    mediaFiles?: boolean
    selectedServices?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type WildberriesSupplyCardOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "supplyId" | "nmId" | "vendorCode" | "title" | "brand" | "price" | "discountedPrice" | "quantity" | "selectedQuantity" | "selectedMarket" | "selectedPlace" | "sellerName" | "sellerPhone" | "deliveryDate" | "mediaFiles" | "selectedServices" | "createdAt" | "updatedAt", ExtArgs["result"]["wildberriesSupplyCard"]>
  export type WildberriesSupplyCardInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    supply?: boolean | WildberriesSupplyDefaultArgs<ExtArgs>
  }
  export type WildberriesSupplyCardIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    supply?: boolean | WildberriesSupplyDefaultArgs<ExtArgs>
  }
  export type WildberriesSupplyCardIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    supply?: boolean | WildberriesSupplyDefaultArgs<ExtArgs>
  }

  export type $WildberriesSupplyCardPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "WildberriesSupplyCard"
    objects: {
      supply: Prisma.$WildberriesSupplyPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      supplyId: string
      nmId: string
      vendorCode: string
      title: string
      brand: string | null
      price: Prisma.Decimal
      discountedPrice: Prisma.Decimal | null
      quantity: number
      selectedQuantity: number
      selectedMarket: string | null
      selectedPlace: string | null
      sellerName: string | null
      sellerPhone: string | null
      deliveryDate: Date | null
      mediaFiles: Prisma.JsonValue
      selectedServices: Prisma.JsonValue
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["wildberriesSupplyCard"]>
    composites: {}
  }

  type WildberriesSupplyCardGetPayload<S extends boolean | null | undefined | WildberriesSupplyCardDefaultArgs> = $Result.GetResult<Prisma.$WildberriesSupplyCardPayload, S>

  type WildberriesSupplyCardCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<WildberriesSupplyCardFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: WildberriesSupplyCardCountAggregateInputType | true
    }

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

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

    /**
     * Find the first WildberriesSupplyCard 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 {WildberriesSupplyCardFindFirstArgs} args - Arguments to find a WildberriesSupplyCard
     * @example
     * // Get one WildberriesSupplyCard
     * const wildberriesSupplyCard = await prisma.wildberriesSupplyCard.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends WildberriesSupplyCardFindFirstArgs>(args?: SelectSubset<T, WildberriesSupplyCardFindFirstArgs<ExtArgs>>): Prisma__WildberriesSupplyCardClient<$Result.GetResult<Prisma.$WildberriesSupplyCardPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first WildberriesSupplyCard 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 {WildberriesSupplyCardFindFirstOrThrowArgs} args - Arguments to find a WildberriesSupplyCard
     * @example
     * // Get one WildberriesSupplyCard
     * const wildberriesSupplyCard = await prisma.wildberriesSupplyCard.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends WildberriesSupplyCardFindFirstOrThrowArgs>(args?: SelectSubset<T, WildberriesSupplyCardFindFirstOrThrowArgs<ExtArgs>>): Prisma__WildberriesSupplyCardClient<$Result.GetResult<Prisma.$WildberriesSupplyCardPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more WildberriesSupplyCards 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 {WildberriesSupplyCardFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all WildberriesSupplyCards
     * const wildberriesSupplyCards = await prisma.wildberriesSupplyCard.findMany()
     * 
     * // Get first 10 WildberriesSupplyCards
     * const wildberriesSupplyCards = await prisma.wildberriesSupplyCard.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const wildberriesSupplyCardWithIdOnly = await prisma.wildberriesSupplyCard.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends WildberriesSupplyCardFindManyArgs>(args?: SelectSubset<T, WildberriesSupplyCardFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$WildberriesSupplyCardPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a WildberriesSupplyCard.
     * @param {WildberriesSupplyCardCreateArgs} args - Arguments to create a WildberriesSupplyCard.
     * @example
     * // Create one WildberriesSupplyCard
     * const WildberriesSupplyCard = await prisma.wildberriesSupplyCard.create({
     *   data: {
     *     // ... data to create a WildberriesSupplyCard
     *   }
     * })
     * 
     */
    create<T extends WildberriesSupplyCardCreateArgs>(args: SelectSubset<T, WildberriesSupplyCardCreateArgs<ExtArgs>>): Prisma__WildberriesSupplyCardClient<$Result.GetResult<Prisma.$WildberriesSupplyCardPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

    /**
     * Create many WildberriesSupplyCards and returns the data saved in the database.
     * @param {WildberriesSupplyCardCreateManyAndReturnArgs} args - Arguments to create many WildberriesSupplyCards.
     * @example
     * // Create many WildberriesSupplyCards
     * const wildberriesSupplyCard = await prisma.wildberriesSupplyCard.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many WildberriesSupplyCards and only return the `id`
     * const wildberriesSupplyCardWithIdOnly = await prisma.wildberriesSupplyCard.createManyAndReturn({
     *   select: { id: true },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    createManyAndReturn<T extends WildberriesSupplyCardCreateManyAndReturnArgs>(args?: SelectSubset<T, WildberriesSupplyCardCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$WildberriesSupplyCardPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a WildberriesSupplyCard.
     * @param {WildberriesSupplyCardDeleteArgs} args - Arguments to delete one WildberriesSupplyCard.
     * @example
     * // Delete one WildberriesSupplyCard
     * const WildberriesSupplyCard = await prisma.wildberriesSupplyCard.delete({
     *   where: {
     *     // ... filter to delete one WildberriesSupplyCard
     *   }
     * })
     * 
     */
    delete<T extends WildberriesSupplyCardDeleteArgs>(args: SelectSubset<T, WildberriesSupplyCardDeleteArgs<ExtArgs>>): Prisma__WildberriesSupplyCardClient<$Result.GetResult<Prisma.$WildberriesSupplyCardPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one WildberriesSupplyCard.
     * @param {WildberriesSupplyCardUpdateArgs} args - Arguments to update one WildberriesSupplyCard.
     * @example
     * // Update one WildberriesSupplyCard
     * const wildberriesSupplyCard = await prisma.wildberriesSupplyCard.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends WildberriesSupplyCardUpdateArgs>(args: SelectSubset<T, WildberriesSupplyCardUpdateArgs<ExtArgs>>): Prisma__WildberriesSupplyCardClient<$Result.GetResult<Prisma.$WildberriesSupplyCardPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

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

    /**
     * Update zero or more WildberriesSupplyCards and returns the data updated in the database.
     * @param {WildberriesSupplyCardUpdateManyAndReturnArgs} args - Arguments to update many WildberriesSupplyCards.
     * @example
     * // Update many WildberriesSupplyCards
     * const wildberriesSupplyCard = await prisma.wildberriesSupplyCard.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more WildberriesSupplyCards and only return the `id`
     * const wildberriesSupplyCardWithIdOnly = await prisma.wildberriesSupplyCard.updateManyAndReturn({
     *   select: { id: true },
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    updateManyAndReturn<T extends WildberriesSupplyCardUpdateManyAndReturnArgs>(args: SelectSubset<T, WildberriesSupplyCardUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$WildberriesSupplyCardPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

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


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

    /**
     * Allows you to perform aggregations operations on a WildberriesSupplyCard.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {WildberriesSupplyCardAggregateArgs} 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 WildberriesSupplyCardAggregateArgs>(args: Subset<T, WildberriesSupplyCardAggregateArgs>): Prisma.PrismaPromise<GetWildberriesSupplyCardAggregateType<T>>

    /**
     * Group by WildberriesSupplyCard.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {WildberriesSupplyCardGroupByArgs} 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 WildberriesSupplyCardGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: WildberriesSupplyCardGroupByArgs['orderBy'] }
        : { orderBy?: WildberriesSupplyCardGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends 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 Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends 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 Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends 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 True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, WildberriesSupplyCardGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetWildberriesSupplyCardGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the WildberriesSupplyCard model
   */
  readonly fields: WildberriesSupplyCardFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for WildberriesSupplyCard.
   * 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__WildberriesSupplyCardClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    supply<T extends WildberriesSupplyDefaultArgs<ExtArgs> = {}>(args?: Subset<T, WildberriesSupplyDefaultArgs<ExtArgs>>): Prisma__WildberriesSupplyClient<$Result.GetResult<Prisma.$WildberriesSupplyPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * 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): $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): $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): $Utils.JsPromise<T>
  }




  /**
   * Fields of the WildberriesSupplyCard model
   */
  interface WildberriesSupplyCardFieldRefs {
    readonly id: FieldRef<"WildberriesSupplyCard", 'String'>
    readonly supplyId: FieldRef<"WildberriesSupplyCard", 'String'>
    readonly nmId: FieldRef<"WildberriesSupplyCard", 'String'>
    readonly vendorCode: FieldRef<"WildberriesSupplyCard", 'String'>
    readonly title: FieldRef<"WildberriesSupplyCard", 'String'>
    readonly brand: FieldRef<"WildberriesSupplyCard", 'String'>
    readonly price: FieldRef<"WildberriesSupplyCard", 'Decimal'>
    readonly discountedPrice: FieldRef<"WildberriesSupplyCard", 'Decimal'>
    readonly quantity: FieldRef<"WildberriesSupplyCard", 'Int'>
    readonly selectedQuantity: FieldRef<"WildberriesSupplyCard", 'Int'>
    readonly selectedMarket: FieldRef<"WildberriesSupplyCard", 'String'>
    readonly selectedPlace: FieldRef<"WildberriesSupplyCard", 'String'>
    readonly sellerName: FieldRef<"WildberriesSupplyCard", 'String'>
    readonly sellerPhone: FieldRef<"WildberriesSupplyCard", 'String'>
    readonly deliveryDate: FieldRef<"WildberriesSupplyCard", 'DateTime'>
    readonly mediaFiles: FieldRef<"WildberriesSupplyCard", 'Json'>
    readonly selectedServices: FieldRef<"WildberriesSupplyCard", 'Json'>
    readonly createdAt: FieldRef<"WildberriesSupplyCard", 'DateTime'>
    readonly updatedAt: FieldRef<"WildberriesSupplyCard", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * WildberriesSupplyCard findUnique
   */
  export type WildberriesSupplyCardFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WildberriesSupplyCard
     */
    select?: WildberriesSupplyCardSelect<ExtArgs> | null
    /**
     * Omit specific fields from the WildberriesSupplyCard
     */
    omit?: WildberriesSupplyCardOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WildberriesSupplyCardInclude<ExtArgs> | null
    /**
     * Filter, which WildberriesSupplyCard to fetch.
     */
    where: WildberriesSupplyCardWhereUniqueInput
  }

  /**
   * WildberriesSupplyCard findUniqueOrThrow
   */
  export type WildberriesSupplyCardFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WildberriesSupplyCard
     */
    select?: WildberriesSupplyCardSelect<ExtArgs> | null
    /**
     * Omit specific fields from the WildberriesSupplyCard
     */
    omit?: WildberriesSupplyCardOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WildberriesSupplyCardInclude<ExtArgs> | null
    /**
     * Filter, which WildberriesSupplyCard to fetch.
     */
    where: WildberriesSupplyCardWhereUniqueInput
  }

  /**
   * WildberriesSupplyCard findFirst
   */
  export type WildberriesSupplyCardFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WildberriesSupplyCard
     */
    select?: WildberriesSupplyCardSelect<ExtArgs> | null
    /**
     * Omit specific fields from the WildberriesSupplyCard
     */
    omit?: WildberriesSupplyCardOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WildberriesSupplyCardInclude<ExtArgs> | null
    /**
     * Filter, which WildberriesSupplyCard to fetch.
     */
    where?: WildberriesSupplyCardWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of WildberriesSupplyCards to fetch.
     */
    orderBy?: WildberriesSupplyCardOrderByWithRelationInput | WildberriesSupplyCardOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for WildberriesSupplyCards.
     */
    cursor?: WildberriesSupplyCardWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` WildberriesSupplyCards 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` WildberriesSupplyCards.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of WildberriesSupplyCards.
     */
    distinct?: WildberriesSupplyCardScalarFieldEnum | WildberriesSupplyCardScalarFieldEnum[]
  }

  /**
   * WildberriesSupplyCard findFirstOrThrow
   */
  export type WildberriesSupplyCardFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WildberriesSupplyCard
     */
    select?: WildberriesSupplyCardSelect<ExtArgs> | null
    /**
     * Omit specific fields from the WildberriesSupplyCard
     */
    omit?: WildberriesSupplyCardOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WildberriesSupplyCardInclude<ExtArgs> | null
    /**
     * Filter, which WildberriesSupplyCard to fetch.
     */
    where?: WildberriesSupplyCardWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of WildberriesSupplyCards to fetch.
     */
    orderBy?: WildberriesSupplyCardOrderByWithRelationInput | WildberriesSupplyCardOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for WildberriesSupplyCards.
     */
    cursor?: WildberriesSupplyCardWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` WildberriesSupplyCards 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` WildberriesSupplyCards.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of WildberriesSupplyCards.
     */
    distinct?: WildberriesSupplyCardScalarFieldEnum | WildberriesSupplyCardScalarFieldEnum[]
  }

  /**
   * WildberriesSupplyCard findMany
   */
  export type WildberriesSupplyCardFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WildberriesSupplyCard
     */
    select?: WildberriesSupplyCardSelect<ExtArgs> | null
    /**
     * Omit specific fields from the WildberriesSupplyCard
     */
    omit?: WildberriesSupplyCardOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WildberriesSupplyCardInclude<ExtArgs> | null
    /**
     * Filter, which WildberriesSupplyCards to fetch.
     */
    where?: WildberriesSupplyCardWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of WildberriesSupplyCards to fetch.
     */
    orderBy?: WildberriesSupplyCardOrderByWithRelationInput | WildberriesSupplyCardOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing WildberriesSupplyCards.
     */
    cursor?: WildberriesSupplyCardWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` WildberriesSupplyCards 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` WildberriesSupplyCards.
     */
    skip?: number
    distinct?: WildberriesSupplyCardScalarFieldEnum | WildberriesSupplyCardScalarFieldEnum[]
  }

  /**
   * WildberriesSupplyCard create
   */
  export type WildberriesSupplyCardCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WildberriesSupplyCard
     */
    select?: WildberriesSupplyCardSelect<ExtArgs> | null
    /**
     * Omit specific fields from the WildberriesSupplyCard
     */
    omit?: WildberriesSupplyCardOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WildberriesSupplyCardInclude<ExtArgs> | null
    /**
     * The data needed to create a WildberriesSupplyCard.
     */
    data: XOR<WildberriesSupplyCardCreateInput, WildberriesSupplyCardUncheckedCreateInput>
  }

  /**
   * WildberriesSupplyCard createMany
   */
  export type WildberriesSupplyCardCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many WildberriesSupplyCards.
     */
    data: WildberriesSupplyCardCreateManyInput | WildberriesSupplyCardCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * WildberriesSupplyCard createManyAndReturn
   */
  export type WildberriesSupplyCardCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WildberriesSupplyCard
     */
    select?: WildberriesSupplyCardSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the WildberriesSupplyCard
     */
    omit?: WildberriesSupplyCardOmit<ExtArgs> | null
    /**
     * The data used to create many WildberriesSupplyCards.
     */
    data: WildberriesSupplyCardCreateManyInput | WildberriesSupplyCardCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WildberriesSupplyCardIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * WildberriesSupplyCard update
   */
  export type WildberriesSupplyCardUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WildberriesSupplyCard
     */
    select?: WildberriesSupplyCardSelect<ExtArgs> | null
    /**
     * Omit specific fields from the WildberriesSupplyCard
     */
    omit?: WildberriesSupplyCardOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WildberriesSupplyCardInclude<ExtArgs> | null
    /**
     * The data needed to update a WildberriesSupplyCard.
     */
    data: XOR<WildberriesSupplyCardUpdateInput, WildberriesSupplyCardUncheckedUpdateInput>
    /**
     * Choose, which WildberriesSupplyCard to update.
     */
    where: WildberriesSupplyCardWhereUniqueInput
  }

  /**
   * WildberriesSupplyCard updateMany
   */
  export type WildberriesSupplyCardUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update WildberriesSupplyCards.
     */
    data: XOR<WildberriesSupplyCardUpdateManyMutationInput, WildberriesSupplyCardUncheckedUpdateManyInput>
    /**
     * Filter which WildberriesSupplyCards to update
     */
    where?: WildberriesSupplyCardWhereInput
    /**
     * Limit how many WildberriesSupplyCards to update.
     */
    limit?: number
  }

  /**
   * WildberriesSupplyCard updateManyAndReturn
   */
  export type WildberriesSupplyCardUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WildberriesSupplyCard
     */
    select?: WildberriesSupplyCardSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the WildberriesSupplyCard
     */
    omit?: WildberriesSupplyCardOmit<ExtArgs> | null
    /**
     * The data used to update WildberriesSupplyCards.
     */
    data: XOR<WildberriesSupplyCardUpdateManyMutationInput, WildberriesSupplyCardUncheckedUpdateManyInput>
    /**
     * Filter which WildberriesSupplyCards to update
     */
    where?: WildberriesSupplyCardWhereInput
    /**
     * Limit how many WildberriesSupplyCards to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WildberriesSupplyCardIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * WildberriesSupplyCard upsert
   */
  export type WildberriesSupplyCardUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WildberriesSupplyCard
     */
    select?: WildberriesSupplyCardSelect<ExtArgs> | null
    /**
     * Omit specific fields from the WildberriesSupplyCard
     */
    omit?: WildberriesSupplyCardOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WildberriesSupplyCardInclude<ExtArgs> | null
    /**
     * The filter to search for the WildberriesSupplyCard to update in case it exists.
     */
    where: WildberriesSupplyCardWhereUniqueInput
    /**
     * In case the WildberriesSupplyCard found by the `where` argument doesn't exist, create a new WildberriesSupplyCard with this data.
     */
    create: XOR<WildberriesSupplyCardCreateInput, WildberriesSupplyCardUncheckedCreateInput>
    /**
     * In case the WildberriesSupplyCard was found with the provided `where` argument, update it with this data.
     */
    update: XOR<WildberriesSupplyCardUpdateInput, WildberriesSupplyCardUncheckedUpdateInput>
  }

  /**
   * WildberriesSupplyCard delete
   */
  export type WildberriesSupplyCardDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WildberriesSupplyCard
     */
    select?: WildberriesSupplyCardSelect<ExtArgs> | null
    /**
     * Omit specific fields from the WildberriesSupplyCard
     */
    omit?: WildberriesSupplyCardOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WildberriesSupplyCardInclude<ExtArgs> | null
    /**
     * Filter which WildberriesSupplyCard to delete.
     */
    where: WildberriesSupplyCardWhereUniqueInput
  }

  /**
   * WildberriesSupplyCard deleteMany
   */
  export type WildberriesSupplyCardDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which WildberriesSupplyCards to delete
     */
    where?: WildberriesSupplyCardWhereInput
    /**
     * Limit how many WildberriesSupplyCards to delete.
     */
    limit?: number
  }

  /**
   * WildberriesSupplyCard without action
   */
  export type WildberriesSupplyCardDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WildberriesSupplyCard
     */
    select?: WildberriesSupplyCardSelect<ExtArgs> | null
    /**
     * Omit specific fields from the WildberriesSupplyCard
     */
    omit?: WildberriesSupplyCardOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WildberriesSupplyCardInclude<ExtArgs> | null
  }


  /**
   * Model Logistics
   */

  export type AggregateLogistics = {
    _count: LogisticsCountAggregateOutputType | null
    _avg: LogisticsAvgAggregateOutputType | null
    _sum: LogisticsSumAggregateOutputType | null
    _min: LogisticsMinAggregateOutputType | null
    _max: LogisticsMaxAggregateOutputType | null
  }

  export type LogisticsAvgAggregateOutputType = {
    priceUnder1m3: number | null
    priceOver1m3: number | null
  }

  export type LogisticsSumAggregateOutputType = {
    priceUnder1m3: number | null
    priceOver1m3: number | null
  }

  export type LogisticsMinAggregateOutputType = {
    id: string | null
    fromLocation: string | null
    toLocation: string | null
    priceUnder1m3: number | null
    priceOver1m3: number | null
    description: string | null
    createdAt: Date | null
    updatedAt: Date | null
    organizationId: string | null
  }

  export type LogisticsMaxAggregateOutputType = {
    id: string | null
    fromLocation: string | null
    toLocation: string | null
    priceUnder1m3: number | null
    priceOver1m3: number | null
    description: string | null
    createdAt: Date | null
    updatedAt: Date | null
    organizationId: string | null
  }

  export type LogisticsCountAggregateOutputType = {
    id: number
    fromLocation: number
    toLocation: number
    priceUnder1m3: number
    priceOver1m3: number
    description: number
    createdAt: number
    updatedAt: number
    organizationId: number
    _all: number
  }


  export type LogisticsAvgAggregateInputType = {
    priceUnder1m3?: true
    priceOver1m3?: true
  }

  export type LogisticsSumAggregateInputType = {
    priceUnder1m3?: true
    priceOver1m3?: true
  }

  export type LogisticsMinAggregateInputType = {
    id?: true
    fromLocation?: true
    toLocation?: true
    priceUnder1m3?: true
    priceOver1m3?: true
    description?: true
    createdAt?: true
    updatedAt?: true
    organizationId?: true
  }

  export type LogisticsMaxAggregateInputType = {
    id?: true
    fromLocation?: true
    toLocation?: true
    priceUnder1m3?: true
    priceOver1m3?: true
    description?: true
    createdAt?: true
    updatedAt?: true
    organizationId?: true
  }

  export type LogisticsCountAggregateInputType = {
    id?: true
    fromLocation?: true
    toLocation?: true
    priceUnder1m3?: true
    priceOver1m3?: true
    description?: true
    createdAt?: true
    updatedAt?: true
    organizationId?: true
    _all?: true
  }

  export type LogisticsAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Logistics to aggregate.
     */
    where?: LogisticsWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Logistics to fetch.
     */
    orderBy?: LogisticsOrderByWithRelationInput | LogisticsOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: LogisticsWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Logistics 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` Logistics.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned Logistics
    **/
    _count?: true | LogisticsCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: LogisticsAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: LogisticsSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: LogisticsMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: LogisticsMaxAggregateInputType
  }

  export type GetLogisticsAggregateType<T extends LogisticsAggregateArgs> = {
        [P in keyof T & keyof AggregateLogistics]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateLogistics[P]>
      : GetScalarType<T[P], AggregateLogistics[P]>
  }




  export type LogisticsGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: LogisticsWhereInput
    orderBy?: LogisticsOrderByWithAggregationInput | LogisticsOrderByWithAggregationInput[]
    by: LogisticsScalarFieldEnum[] | LogisticsScalarFieldEnum
    having?: LogisticsScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: LogisticsCountAggregateInputType | true
    _avg?: LogisticsAvgAggregateInputType
    _sum?: LogisticsSumAggregateInputType
    _min?: LogisticsMinAggregateInputType
    _max?: LogisticsMaxAggregateInputType
  }

  export type LogisticsGroupByOutputType = {
    id: string
    fromLocation: string
    toLocation: string
    priceUnder1m3: number
    priceOver1m3: number
    description: string | null
    createdAt: Date
    updatedAt: Date
    organizationId: string
    _count: LogisticsCountAggregateOutputType | null
    _avg: LogisticsAvgAggregateOutputType | null
    _sum: LogisticsSumAggregateOutputType | null
    _min: LogisticsMinAggregateOutputType | null
    _max: LogisticsMaxAggregateOutputType | null
  }

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


  export type LogisticsSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    fromLocation?: boolean
    toLocation?: boolean
    priceUnder1m3?: boolean
    priceOver1m3?: boolean
    description?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    organizationId?: boolean
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["logistics"]>

  export type LogisticsSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    fromLocation?: boolean
    toLocation?: boolean
    priceUnder1m3?: boolean
    priceOver1m3?: boolean
    description?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    organizationId?: boolean
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["logistics"]>

  export type LogisticsSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    fromLocation?: boolean
    toLocation?: boolean
    priceUnder1m3?: boolean
    priceOver1m3?: boolean
    description?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    organizationId?: boolean
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["logistics"]>

  export type LogisticsSelectScalar = {
    id?: boolean
    fromLocation?: boolean
    toLocation?: boolean
    priceUnder1m3?: boolean
    priceOver1m3?: boolean
    description?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    organizationId?: boolean
  }

  export type LogisticsOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "fromLocation" | "toLocation" | "priceUnder1m3" | "priceOver1m3" | "description" | "createdAt" | "updatedAt" | "organizationId", ExtArgs["result"]["logistics"]>
  export type LogisticsInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }
  export type LogisticsIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }
  export type LogisticsIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }

  export type $LogisticsPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "Logistics"
    objects: {
      organization: Prisma.$OrganizationPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      fromLocation: string
      toLocation: string
      priceUnder1m3: number
      priceOver1m3: number
      description: string | null
      createdAt: Date
      updatedAt: Date
      organizationId: string
    }, ExtArgs["result"]["logistics"]>
    composites: {}
  }

  type LogisticsGetPayload<S extends boolean | null | undefined | LogisticsDefaultArgs> = $Result.GetResult<Prisma.$LogisticsPayload, S>

  type LogisticsCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<LogisticsFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: LogisticsCountAggregateInputType | true
    }

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

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

    /**
     * Find the first Logistics 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 {LogisticsFindFirstArgs} args - Arguments to find a Logistics
     * @example
     * // Get one Logistics
     * const logistics = await prisma.logistics.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends LogisticsFindFirstArgs>(args?: SelectSubset<T, LogisticsFindFirstArgs<ExtArgs>>): Prisma__LogisticsClient<$Result.GetResult<Prisma.$LogisticsPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Logistics 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 {LogisticsFindFirstOrThrowArgs} args - Arguments to find a Logistics
     * @example
     * // Get one Logistics
     * const logistics = await prisma.logistics.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends LogisticsFindFirstOrThrowArgs>(args?: SelectSubset<T, LogisticsFindFirstOrThrowArgs<ExtArgs>>): Prisma__LogisticsClient<$Result.GetResult<Prisma.$LogisticsPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more Logistics 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 {LogisticsFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all Logistics
     * const logistics = await prisma.logistics.findMany()
     * 
     * // Get first 10 Logistics
     * const logistics = await prisma.logistics.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const logisticsWithIdOnly = await prisma.logistics.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends LogisticsFindManyArgs>(args?: SelectSubset<T, LogisticsFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$LogisticsPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a Logistics.
     * @param {LogisticsCreateArgs} args - Arguments to create a Logistics.
     * @example
     * // Create one Logistics
     * const Logistics = await prisma.logistics.create({
     *   data: {
     *     // ... data to create a Logistics
     *   }
     * })
     * 
     */
    create<T extends LogisticsCreateArgs>(args: SelectSubset<T, LogisticsCreateArgs<ExtArgs>>): Prisma__LogisticsClient<$Result.GetResult<Prisma.$LogisticsPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

    /**
     * Create many Logistics and returns the data saved in the database.
     * @param {LogisticsCreateManyAndReturnArgs} args - Arguments to create many Logistics.
     * @example
     * // Create many Logistics
     * const logistics = await prisma.logistics.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many Logistics and only return the `id`
     * const logisticsWithIdOnly = await prisma.logistics.createManyAndReturn({
     *   select: { id: true },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    createManyAndReturn<T extends LogisticsCreateManyAndReturnArgs>(args?: SelectSubset<T, LogisticsCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$LogisticsPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a Logistics.
     * @param {LogisticsDeleteArgs} args - Arguments to delete one Logistics.
     * @example
     * // Delete one Logistics
     * const Logistics = await prisma.logistics.delete({
     *   where: {
     *     // ... filter to delete one Logistics
     *   }
     * })
     * 
     */
    delete<T extends LogisticsDeleteArgs>(args: SelectSubset<T, LogisticsDeleteArgs<ExtArgs>>): Prisma__LogisticsClient<$Result.GetResult<Prisma.$LogisticsPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one Logistics.
     * @param {LogisticsUpdateArgs} args - Arguments to update one Logistics.
     * @example
     * // Update one Logistics
     * const logistics = await prisma.logistics.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends LogisticsUpdateArgs>(args: SelectSubset<T, LogisticsUpdateArgs<ExtArgs>>): Prisma__LogisticsClient<$Result.GetResult<Prisma.$LogisticsPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

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

    /**
     * Update zero or more Logistics and returns the data updated in the database.
     * @param {LogisticsUpdateManyAndReturnArgs} args - Arguments to update many Logistics.
     * @example
     * // Update many Logistics
     * const logistics = await prisma.logistics.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more Logistics and only return the `id`
     * const logisticsWithIdOnly = await prisma.logistics.updateManyAndReturn({
     *   select: { id: true },
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    updateManyAndReturn<T extends LogisticsUpdateManyAndReturnArgs>(args: SelectSubset<T, LogisticsUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$LogisticsPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

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


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

    /**
     * Allows you to perform aggregations operations on a Logistics.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {LogisticsAggregateArgs} 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 LogisticsAggregateArgs>(args: Subset<T, LogisticsAggregateArgs>): Prisma.PrismaPromise<GetLogisticsAggregateType<T>>

    /**
     * Group by Logistics.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {LogisticsGroupByArgs} 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 LogisticsGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: LogisticsGroupByArgs['orderBy'] }
        : { orderBy?: LogisticsGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends 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 Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends 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 Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends 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 True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, LogisticsGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetLogisticsGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the Logistics model
   */
  readonly fields: LogisticsFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for Logistics.
   * 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__LogisticsClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    organization<T extends OrganizationDefaultArgs<ExtArgs> = {}>(args?: Subset<T, OrganizationDefaultArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * 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): $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): $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): $Utils.JsPromise<T>
  }




  /**
   * Fields of the Logistics model
   */
  interface LogisticsFieldRefs {
    readonly id: FieldRef<"Logistics", 'String'>
    readonly fromLocation: FieldRef<"Logistics", 'String'>
    readonly toLocation: FieldRef<"Logistics", 'String'>
    readonly priceUnder1m3: FieldRef<"Logistics", 'Float'>
    readonly priceOver1m3: FieldRef<"Logistics", 'Float'>
    readonly description: FieldRef<"Logistics", 'String'>
    readonly createdAt: FieldRef<"Logistics", 'DateTime'>
    readonly updatedAt: FieldRef<"Logistics", 'DateTime'>
    readonly organizationId: FieldRef<"Logistics", 'String'>
  }
    

  // Custom InputTypes
  /**
   * Logistics findUnique
   */
  export type LogisticsFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Logistics
     */
    select?: LogisticsSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Logistics
     */
    omit?: LogisticsOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: LogisticsInclude<ExtArgs> | null
    /**
     * Filter, which Logistics to fetch.
     */
    where: LogisticsWhereUniqueInput
  }

  /**
   * Logistics findUniqueOrThrow
   */
  export type LogisticsFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Logistics
     */
    select?: LogisticsSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Logistics
     */
    omit?: LogisticsOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: LogisticsInclude<ExtArgs> | null
    /**
     * Filter, which Logistics to fetch.
     */
    where: LogisticsWhereUniqueInput
  }

  /**
   * Logistics findFirst
   */
  export type LogisticsFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Logistics
     */
    select?: LogisticsSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Logistics
     */
    omit?: LogisticsOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: LogisticsInclude<ExtArgs> | null
    /**
     * Filter, which Logistics to fetch.
     */
    where?: LogisticsWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Logistics to fetch.
     */
    orderBy?: LogisticsOrderByWithRelationInput | LogisticsOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Logistics.
     */
    cursor?: LogisticsWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Logistics 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` Logistics.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Logistics.
     */
    distinct?: LogisticsScalarFieldEnum | LogisticsScalarFieldEnum[]
  }

  /**
   * Logistics findFirstOrThrow
   */
  export type LogisticsFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Logistics
     */
    select?: LogisticsSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Logistics
     */
    omit?: LogisticsOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: LogisticsInclude<ExtArgs> | null
    /**
     * Filter, which Logistics to fetch.
     */
    where?: LogisticsWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Logistics to fetch.
     */
    orderBy?: LogisticsOrderByWithRelationInput | LogisticsOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Logistics.
     */
    cursor?: LogisticsWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Logistics 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` Logistics.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Logistics.
     */
    distinct?: LogisticsScalarFieldEnum | LogisticsScalarFieldEnum[]
  }

  /**
   * Logistics findMany
   */
  export type LogisticsFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Logistics
     */
    select?: LogisticsSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Logistics
     */
    omit?: LogisticsOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: LogisticsInclude<ExtArgs> | null
    /**
     * Filter, which Logistics to fetch.
     */
    where?: LogisticsWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Logistics to fetch.
     */
    orderBy?: LogisticsOrderByWithRelationInput | LogisticsOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing Logistics.
     */
    cursor?: LogisticsWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Logistics 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` Logistics.
     */
    skip?: number
    distinct?: LogisticsScalarFieldEnum | LogisticsScalarFieldEnum[]
  }

  /**
   * Logistics create
   */
  export type LogisticsCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Logistics
     */
    select?: LogisticsSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Logistics
     */
    omit?: LogisticsOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: LogisticsInclude<ExtArgs> | null
    /**
     * The data needed to create a Logistics.
     */
    data: XOR<LogisticsCreateInput, LogisticsUncheckedCreateInput>
  }

  /**
   * Logistics createMany
   */
  export type LogisticsCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many Logistics.
     */
    data: LogisticsCreateManyInput | LogisticsCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Logistics createManyAndReturn
   */
  export type LogisticsCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Logistics
     */
    select?: LogisticsSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Logistics
     */
    omit?: LogisticsOmit<ExtArgs> | null
    /**
     * The data used to create many Logistics.
     */
    data: LogisticsCreateManyInput | LogisticsCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: LogisticsIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * Logistics update
   */
  export type LogisticsUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Logistics
     */
    select?: LogisticsSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Logistics
     */
    omit?: LogisticsOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: LogisticsInclude<ExtArgs> | null
    /**
     * The data needed to update a Logistics.
     */
    data: XOR<LogisticsUpdateInput, LogisticsUncheckedUpdateInput>
    /**
     * Choose, which Logistics to update.
     */
    where: LogisticsWhereUniqueInput
  }

  /**
   * Logistics updateMany
   */
  export type LogisticsUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update Logistics.
     */
    data: XOR<LogisticsUpdateManyMutationInput, LogisticsUncheckedUpdateManyInput>
    /**
     * Filter which Logistics to update
     */
    where?: LogisticsWhereInput
    /**
     * Limit how many Logistics to update.
     */
    limit?: number
  }

  /**
   * Logistics updateManyAndReturn
   */
  export type LogisticsUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Logistics
     */
    select?: LogisticsSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Logistics
     */
    omit?: LogisticsOmit<ExtArgs> | null
    /**
     * The data used to update Logistics.
     */
    data: XOR<LogisticsUpdateManyMutationInput, LogisticsUncheckedUpdateManyInput>
    /**
     * Filter which Logistics to update
     */
    where?: LogisticsWhereInput
    /**
     * Limit how many Logistics to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: LogisticsIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * Logistics upsert
   */
  export type LogisticsUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Logistics
     */
    select?: LogisticsSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Logistics
     */
    omit?: LogisticsOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: LogisticsInclude<ExtArgs> | null
    /**
     * The filter to search for the Logistics to update in case it exists.
     */
    where: LogisticsWhereUniqueInput
    /**
     * In case the Logistics found by the `where` argument doesn't exist, create a new Logistics with this data.
     */
    create: XOR<LogisticsCreateInput, LogisticsUncheckedCreateInput>
    /**
     * In case the Logistics was found with the provided `where` argument, update it with this data.
     */
    update: XOR<LogisticsUpdateInput, LogisticsUncheckedUpdateInput>
  }

  /**
   * Logistics delete
   */
  export type LogisticsDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Logistics
     */
    select?: LogisticsSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Logistics
     */
    omit?: LogisticsOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: LogisticsInclude<ExtArgs> | null
    /**
     * Filter which Logistics to delete.
     */
    where: LogisticsWhereUniqueInput
  }

  /**
   * Logistics deleteMany
   */
  export type LogisticsDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Logistics to delete
     */
    where?: LogisticsWhereInput
    /**
     * Limit how many Logistics to delete.
     */
    limit?: number
  }

  /**
   * Logistics without action
   */
  export type LogisticsDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Logistics
     */
    select?: LogisticsSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Logistics
     */
    omit?: LogisticsOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: LogisticsInclude<ExtArgs> | null
  }


  /**
   * Model SupplyOrder
   */

  export type AggregateSupplyOrder = {
    _count: SupplyOrderCountAggregateOutputType | null
    _avg: SupplyOrderAvgAggregateOutputType | null
    _sum: SupplyOrderSumAggregateOutputType | null
    _min: SupplyOrderMinAggregateOutputType | null
    _max: SupplyOrderMaxAggregateOutputType | null
  }

  export type SupplyOrderAvgAggregateOutputType = {
    totalAmount: Decimal | null
    totalItems: number | null
  }

  export type SupplyOrderSumAggregateOutputType = {
    totalAmount: Decimal | null
    totalItems: number | null
  }

  export type SupplyOrderMinAggregateOutputType = {
    id: string | null
    partnerId: string | null
    deliveryDate: Date | null
    status: $Enums.SupplyOrderStatus | null
    totalAmount: Decimal | null
    totalItems: number | null
    fulfillmentCenterId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    organizationId: string | null
  }

  export type SupplyOrderMaxAggregateOutputType = {
    id: string | null
    partnerId: string | null
    deliveryDate: Date | null
    status: $Enums.SupplyOrderStatus | null
    totalAmount: Decimal | null
    totalItems: number | null
    fulfillmentCenterId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    organizationId: string | null
  }

  export type SupplyOrderCountAggregateOutputType = {
    id: number
    partnerId: number
    deliveryDate: number
    status: number
    totalAmount: number
    totalItems: number
    fulfillmentCenterId: number
    createdAt: number
    updatedAt: number
    organizationId: number
    _all: number
  }


  export type SupplyOrderAvgAggregateInputType = {
    totalAmount?: true
    totalItems?: true
  }

  export type SupplyOrderSumAggregateInputType = {
    totalAmount?: true
    totalItems?: true
  }

  export type SupplyOrderMinAggregateInputType = {
    id?: true
    partnerId?: true
    deliveryDate?: true
    status?: true
    totalAmount?: true
    totalItems?: true
    fulfillmentCenterId?: true
    createdAt?: true
    updatedAt?: true
    organizationId?: true
  }

  export type SupplyOrderMaxAggregateInputType = {
    id?: true
    partnerId?: true
    deliveryDate?: true
    status?: true
    totalAmount?: true
    totalItems?: true
    fulfillmentCenterId?: true
    createdAt?: true
    updatedAt?: true
    organizationId?: true
  }

  export type SupplyOrderCountAggregateInputType = {
    id?: true
    partnerId?: true
    deliveryDate?: true
    status?: true
    totalAmount?: true
    totalItems?: true
    fulfillmentCenterId?: true
    createdAt?: true
    updatedAt?: true
    organizationId?: true
    _all?: true
  }

  export type SupplyOrderAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which SupplyOrder to aggregate.
     */
    where?: SupplyOrderWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SupplyOrders to fetch.
     */
    orderBy?: SupplyOrderOrderByWithRelationInput | SupplyOrderOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: SupplyOrderWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SupplyOrders 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` SupplyOrders.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned SupplyOrders
    **/
    _count?: true | SupplyOrderCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: SupplyOrderAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: SupplyOrderSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: SupplyOrderMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: SupplyOrderMaxAggregateInputType
  }

  export type GetSupplyOrderAggregateType<T extends SupplyOrderAggregateArgs> = {
        [P in keyof T & keyof AggregateSupplyOrder]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateSupplyOrder[P]>
      : GetScalarType<T[P], AggregateSupplyOrder[P]>
  }




  export type SupplyOrderGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: SupplyOrderWhereInput
    orderBy?: SupplyOrderOrderByWithAggregationInput | SupplyOrderOrderByWithAggregationInput[]
    by: SupplyOrderScalarFieldEnum[] | SupplyOrderScalarFieldEnum
    having?: SupplyOrderScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: SupplyOrderCountAggregateInputType | true
    _avg?: SupplyOrderAvgAggregateInputType
    _sum?: SupplyOrderSumAggregateInputType
    _min?: SupplyOrderMinAggregateInputType
    _max?: SupplyOrderMaxAggregateInputType
  }

  export type SupplyOrderGroupByOutputType = {
    id: string
    partnerId: string
    deliveryDate: Date
    status: $Enums.SupplyOrderStatus
    totalAmount: Decimal
    totalItems: number
    fulfillmentCenterId: string | null
    createdAt: Date
    updatedAt: Date
    organizationId: string
    _count: SupplyOrderCountAggregateOutputType | null
    _avg: SupplyOrderAvgAggregateOutputType | null
    _sum: SupplyOrderSumAggregateOutputType | null
    _min: SupplyOrderMinAggregateOutputType | null
    _max: SupplyOrderMaxAggregateOutputType | null
  }

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


  export type SupplyOrderSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    partnerId?: boolean
    deliveryDate?: boolean
    status?: boolean
    totalAmount?: boolean
    totalItems?: boolean
    fulfillmentCenterId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    organizationId?: boolean
    items?: boolean | SupplyOrder$itemsArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
    partner?: boolean | OrganizationDefaultArgs<ExtArgs>
    fulfillmentCenter?: boolean | SupplyOrder$fulfillmentCenterArgs<ExtArgs>
    _count?: boolean | SupplyOrderCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["supplyOrder"]>

  export type SupplyOrderSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    partnerId?: boolean
    deliveryDate?: boolean
    status?: boolean
    totalAmount?: boolean
    totalItems?: boolean
    fulfillmentCenterId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    organizationId?: boolean
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
    partner?: boolean | OrganizationDefaultArgs<ExtArgs>
    fulfillmentCenter?: boolean | SupplyOrder$fulfillmentCenterArgs<ExtArgs>
  }, ExtArgs["result"]["supplyOrder"]>

  export type SupplyOrderSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    partnerId?: boolean
    deliveryDate?: boolean
    status?: boolean
    totalAmount?: boolean
    totalItems?: boolean
    fulfillmentCenterId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    organizationId?: boolean
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
    partner?: boolean | OrganizationDefaultArgs<ExtArgs>
    fulfillmentCenter?: boolean | SupplyOrder$fulfillmentCenterArgs<ExtArgs>
  }, ExtArgs["result"]["supplyOrder"]>

  export type SupplyOrderSelectScalar = {
    id?: boolean
    partnerId?: boolean
    deliveryDate?: boolean
    status?: boolean
    totalAmount?: boolean
    totalItems?: boolean
    fulfillmentCenterId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    organizationId?: boolean
  }

  export type SupplyOrderOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "partnerId" | "deliveryDate" | "status" | "totalAmount" | "totalItems" | "fulfillmentCenterId" | "createdAt" | "updatedAt" | "organizationId", ExtArgs["result"]["supplyOrder"]>
  export type SupplyOrderInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    items?: boolean | SupplyOrder$itemsArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
    partner?: boolean | OrganizationDefaultArgs<ExtArgs>
    fulfillmentCenter?: boolean | SupplyOrder$fulfillmentCenterArgs<ExtArgs>
    _count?: boolean | SupplyOrderCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type SupplyOrderIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
    partner?: boolean | OrganizationDefaultArgs<ExtArgs>
    fulfillmentCenter?: boolean | SupplyOrder$fulfillmentCenterArgs<ExtArgs>
  }
  export type SupplyOrderIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
    partner?: boolean | OrganizationDefaultArgs<ExtArgs>
    fulfillmentCenter?: boolean | SupplyOrder$fulfillmentCenterArgs<ExtArgs>
  }

  export type $SupplyOrderPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "SupplyOrder"
    objects: {
      items: Prisma.$SupplyOrderItemPayload<ExtArgs>[]
      organization: Prisma.$OrganizationPayload<ExtArgs>
      partner: Prisma.$OrganizationPayload<ExtArgs>
      fulfillmentCenter: Prisma.$OrganizationPayload<ExtArgs> | null
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      partnerId: string
      deliveryDate: Date
      status: $Enums.SupplyOrderStatus
      totalAmount: Prisma.Decimal
      totalItems: number
      fulfillmentCenterId: string | null
      createdAt: Date
      updatedAt: Date
      organizationId: string
    }, ExtArgs["result"]["supplyOrder"]>
    composites: {}
  }

  type SupplyOrderGetPayload<S extends boolean | null | undefined | SupplyOrderDefaultArgs> = $Result.GetResult<Prisma.$SupplyOrderPayload, S>

  type SupplyOrderCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<SupplyOrderFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: SupplyOrderCountAggregateInputType | true
    }

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

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

    /**
     * Find the first SupplyOrder 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 {SupplyOrderFindFirstArgs} args - Arguments to find a SupplyOrder
     * @example
     * // Get one SupplyOrder
     * const supplyOrder = await prisma.supplyOrder.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends SupplyOrderFindFirstArgs>(args?: SelectSubset<T, SupplyOrderFindFirstArgs<ExtArgs>>): Prisma__SupplyOrderClient<$Result.GetResult<Prisma.$SupplyOrderPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first SupplyOrder 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 {SupplyOrderFindFirstOrThrowArgs} args - Arguments to find a SupplyOrder
     * @example
     * // Get one SupplyOrder
     * const supplyOrder = await prisma.supplyOrder.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends SupplyOrderFindFirstOrThrowArgs>(args?: SelectSubset<T, SupplyOrderFindFirstOrThrowArgs<ExtArgs>>): Prisma__SupplyOrderClient<$Result.GetResult<Prisma.$SupplyOrderPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more SupplyOrders 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 {SupplyOrderFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all SupplyOrders
     * const supplyOrders = await prisma.supplyOrder.findMany()
     * 
     * // Get first 10 SupplyOrders
     * const supplyOrders = await prisma.supplyOrder.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const supplyOrderWithIdOnly = await prisma.supplyOrder.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends SupplyOrderFindManyArgs>(args?: SelectSubset<T, SupplyOrderFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SupplyOrderPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a SupplyOrder.
     * @param {SupplyOrderCreateArgs} args - Arguments to create a SupplyOrder.
     * @example
     * // Create one SupplyOrder
     * const SupplyOrder = await prisma.supplyOrder.create({
     *   data: {
     *     // ... data to create a SupplyOrder
     *   }
     * })
     * 
     */
    create<T extends SupplyOrderCreateArgs>(args: SelectSubset<T, SupplyOrderCreateArgs<ExtArgs>>): Prisma__SupplyOrderClient<$Result.GetResult<Prisma.$SupplyOrderPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

    /**
     * Create many SupplyOrders and returns the data saved in the database.
     * @param {SupplyOrderCreateManyAndReturnArgs} args - Arguments to create many SupplyOrders.
     * @example
     * // Create many SupplyOrders
     * const supplyOrder = await prisma.supplyOrder.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many SupplyOrders and only return the `id`
     * const supplyOrderWithIdOnly = await prisma.supplyOrder.createManyAndReturn({
     *   select: { id: true },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    createManyAndReturn<T extends SupplyOrderCreateManyAndReturnArgs>(args?: SelectSubset<T, SupplyOrderCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SupplyOrderPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a SupplyOrder.
     * @param {SupplyOrderDeleteArgs} args - Arguments to delete one SupplyOrder.
     * @example
     * // Delete one SupplyOrder
     * const SupplyOrder = await prisma.supplyOrder.delete({
     *   where: {
     *     // ... filter to delete one SupplyOrder
     *   }
     * })
     * 
     */
    delete<T extends SupplyOrderDeleteArgs>(args: SelectSubset<T, SupplyOrderDeleteArgs<ExtArgs>>): Prisma__SupplyOrderClient<$Result.GetResult<Prisma.$SupplyOrderPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one SupplyOrder.
     * @param {SupplyOrderUpdateArgs} args - Arguments to update one SupplyOrder.
     * @example
     * // Update one SupplyOrder
     * const supplyOrder = await prisma.supplyOrder.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends SupplyOrderUpdateArgs>(args: SelectSubset<T, SupplyOrderUpdateArgs<ExtArgs>>): Prisma__SupplyOrderClient<$Result.GetResult<Prisma.$SupplyOrderPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

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

    /**
     * Update zero or more SupplyOrders and returns the data updated in the database.
     * @param {SupplyOrderUpdateManyAndReturnArgs} args - Arguments to update many SupplyOrders.
     * @example
     * // Update many SupplyOrders
     * const supplyOrder = await prisma.supplyOrder.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more SupplyOrders and only return the `id`
     * const supplyOrderWithIdOnly = await prisma.supplyOrder.updateManyAndReturn({
     *   select: { id: true },
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    updateManyAndReturn<T extends SupplyOrderUpdateManyAndReturnArgs>(args: SelectSubset<T, SupplyOrderUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SupplyOrderPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

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


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

    /**
     * Allows you to perform aggregations operations on a SupplyOrder.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SupplyOrderAggregateArgs} 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 SupplyOrderAggregateArgs>(args: Subset<T, SupplyOrderAggregateArgs>): Prisma.PrismaPromise<GetSupplyOrderAggregateType<T>>

    /**
     * Group by SupplyOrder.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SupplyOrderGroupByArgs} 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 SupplyOrderGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: SupplyOrderGroupByArgs['orderBy'] }
        : { orderBy?: SupplyOrderGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends 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 Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends 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 Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends 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 True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, SupplyOrderGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetSupplyOrderGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the SupplyOrder model
   */
  readonly fields: SupplyOrderFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for SupplyOrder.
   * 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__SupplyOrderClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    items<T extends SupplyOrder$itemsArgs<ExtArgs> = {}>(args?: Subset<T, SupplyOrder$itemsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SupplyOrderItemPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    organization<T extends OrganizationDefaultArgs<ExtArgs> = {}>(args?: Subset<T, OrganizationDefaultArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    partner<T extends OrganizationDefaultArgs<ExtArgs> = {}>(args?: Subset<T, OrganizationDefaultArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    fulfillmentCenter<T extends SupplyOrder$fulfillmentCenterArgs<ExtArgs> = {}>(args?: Subset<T, SupplyOrder$fulfillmentCenterArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    /**
     * 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): $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): $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): $Utils.JsPromise<T>
  }




  /**
   * Fields of the SupplyOrder model
   */
  interface SupplyOrderFieldRefs {
    readonly id: FieldRef<"SupplyOrder", 'String'>
    readonly partnerId: FieldRef<"SupplyOrder", 'String'>
    readonly deliveryDate: FieldRef<"SupplyOrder", 'DateTime'>
    readonly status: FieldRef<"SupplyOrder", 'SupplyOrderStatus'>
    readonly totalAmount: FieldRef<"SupplyOrder", 'Decimal'>
    readonly totalItems: FieldRef<"SupplyOrder", 'Int'>
    readonly fulfillmentCenterId: FieldRef<"SupplyOrder", 'String'>
    readonly createdAt: FieldRef<"SupplyOrder", 'DateTime'>
    readonly updatedAt: FieldRef<"SupplyOrder", 'DateTime'>
    readonly organizationId: FieldRef<"SupplyOrder", 'String'>
  }
    

  // Custom InputTypes
  /**
   * SupplyOrder findUnique
   */
  export type SupplyOrderFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplyOrder
     */
    select?: SupplyOrderSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SupplyOrder
     */
    omit?: SupplyOrderOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplyOrderInclude<ExtArgs> | null
    /**
     * Filter, which SupplyOrder to fetch.
     */
    where: SupplyOrderWhereUniqueInput
  }

  /**
   * SupplyOrder findUniqueOrThrow
   */
  export type SupplyOrderFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplyOrder
     */
    select?: SupplyOrderSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SupplyOrder
     */
    omit?: SupplyOrderOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplyOrderInclude<ExtArgs> | null
    /**
     * Filter, which SupplyOrder to fetch.
     */
    where: SupplyOrderWhereUniqueInput
  }

  /**
   * SupplyOrder findFirst
   */
  export type SupplyOrderFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplyOrder
     */
    select?: SupplyOrderSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SupplyOrder
     */
    omit?: SupplyOrderOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplyOrderInclude<ExtArgs> | null
    /**
     * Filter, which SupplyOrder to fetch.
     */
    where?: SupplyOrderWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SupplyOrders to fetch.
     */
    orderBy?: SupplyOrderOrderByWithRelationInput | SupplyOrderOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for SupplyOrders.
     */
    cursor?: SupplyOrderWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SupplyOrders 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` SupplyOrders.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of SupplyOrders.
     */
    distinct?: SupplyOrderScalarFieldEnum | SupplyOrderScalarFieldEnum[]
  }

  /**
   * SupplyOrder findFirstOrThrow
   */
  export type SupplyOrderFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplyOrder
     */
    select?: SupplyOrderSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SupplyOrder
     */
    omit?: SupplyOrderOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplyOrderInclude<ExtArgs> | null
    /**
     * Filter, which SupplyOrder to fetch.
     */
    where?: SupplyOrderWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SupplyOrders to fetch.
     */
    orderBy?: SupplyOrderOrderByWithRelationInput | SupplyOrderOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for SupplyOrders.
     */
    cursor?: SupplyOrderWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SupplyOrders 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` SupplyOrders.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of SupplyOrders.
     */
    distinct?: SupplyOrderScalarFieldEnum | SupplyOrderScalarFieldEnum[]
  }

  /**
   * SupplyOrder findMany
   */
  export type SupplyOrderFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplyOrder
     */
    select?: SupplyOrderSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SupplyOrder
     */
    omit?: SupplyOrderOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplyOrderInclude<ExtArgs> | null
    /**
     * Filter, which SupplyOrders to fetch.
     */
    where?: SupplyOrderWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SupplyOrders to fetch.
     */
    orderBy?: SupplyOrderOrderByWithRelationInput | SupplyOrderOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing SupplyOrders.
     */
    cursor?: SupplyOrderWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SupplyOrders 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` SupplyOrders.
     */
    skip?: number
    distinct?: SupplyOrderScalarFieldEnum | SupplyOrderScalarFieldEnum[]
  }

  /**
   * SupplyOrder create
   */
  export type SupplyOrderCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplyOrder
     */
    select?: SupplyOrderSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SupplyOrder
     */
    omit?: SupplyOrderOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplyOrderInclude<ExtArgs> | null
    /**
     * The data needed to create a SupplyOrder.
     */
    data: XOR<SupplyOrderCreateInput, SupplyOrderUncheckedCreateInput>
  }

  /**
   * SupplyOrder createMany
   */
  export type SupplyOrderCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many SupplyOrders.
     */
    data: SupplyOrderCreateManyInput | SupplyOrderCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * SupplyOrder createManyAndReturn
   */
  export type SupplyOrderCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplyOrder
     */
    select?: SupplyOrderSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the SupplyOrder
     */
    omit?: SupplyOrderOmit<ExtArgs> | null
    /**
     * The data used to create many SupplyOrders.
     */
    data: SupplyOrderCreateManyInput | SupplyOrderCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplyOrderIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * SupplyOrder update
   */
  export type SupplyOrderUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplyOrder
     */
    select?: SupplyOrderSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SupplyOrder
     */
    omit?: SupplyOrderOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplyOrderInclude<ExtArgs> | null
    /**
     * The data needed to update a SupplyOrder.
     */
    data: XOR<SupplyOrderUpdateInput, SupplyOrderUncheckedUpdateInput>
    /**
     * Choose, which SupplyOrder to update.
     */
    where: SupplyOrderWhereUniqueInput
  }

  /**
   * SupplyOrder updateMany
   */
  export type SupplyOrderUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update SupplyOrders.
     */
    data: XOR<SupplyOrderUpdateManyMutationInput, SupplyOrderUncheckedUpdateManyInput>
    /**
     * Filter which SupplyOrders to update
     */
    where?: SupplyOrderWhereInput
    /**
     * Limit how many SupplyOrders to update.
     */
    limit?: number
  }

  /**
   * SupplyOrder updateManyAndReturn
   */
  export type SupplyOrderUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplyOrder
     */
    select?: SupplyOrderSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the SupplyOrder
     */
    omit?: SupplyOrderOmit<ExtArgs> | null
    /**
     * The data used to update SupplyOrders.
     */
    data: XOR<SupplyOrderUpdateManyMutationInput, SupplyOrderUncheckedUpdateManyInput>
    /**
     * Filter which SupplyOrders to update
     */
    where?: SupplyOrderWhereInput
    /**
     * Limit how many SupplyOrders to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplyOrderIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * SupplyOrder upsert
   */
  export type SupplyOrderUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplyOrder
     */
    select?: SupplyOrderSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SupplyOrder
     */
    omit?: SupplyOrderOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplyOrderInclude<ExtArgs> | null
    /**
     * The filter to search for the SupplyOrder to update in case it exists.
     */
    where: SupplyOrderWhereUniqueInput
    /**
     * In case the SupplyOrder found by the `where` argument doesn't exist, create a new SupplyOrder with this data.
     */
    create: XOR<SupplyOrderCreateInput, SupplyOrderUncheckedCreateInput>
    /**
     * In case the SupplyOrder was found with the provided `where` argument, update it with this data.
     */
    update: XOR<SupplyOrderUpdateInput, SupplyOrderUncheckedUpdateInput>
  }

  /**
   * SupplyOrder delete
   */
  export type SupplyOrderDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplyOrder
     */
    select?: SupplyOrderSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SupplyOrder
     */
    omit?: SupplyOrderOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplyOrderInclude<ExtArgs> | null
    /**
     * Filter which SupplyOrder to delete.
     */
    where: SupplyOrderWhereUniqueInput
  }

  /**
   * SupplyOrder deleteMany
   */
  export type SupplyOrderDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which SupplyOrders to delete
     */
    where?: SupplyOrderWhereInput
    /**
     * Limit how many SupplyOrders to delete.
     */
    limit?: number
  }

  /**
   * SupplyOrder.items
   */
  export type SupplyOrder$itemsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplyOrderItem
     */
    select?: SupplyOrderItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SupplyOrderItem
     */
    omit?: SupplyOrderItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplyOrderItemInclude<ExtArgs> | null
    where?: SupplyOrderItemWhereInput
    orderBy?: SupplyOrderItemOrderByWithRelationInput | SupplyOrderItemOrderByWithRelationInput[]
    cursor?: SupplyOrderItemWhereUniqueInput
    take?: number
    skip?: number
    distinct?: SupplyOrderItemScalarFieldEnum | SupplyOrderItemScalarFieldEnum[]
  }

  /**
   * SupplyOrder.fulfillmentCenter
   */
  export type SupplyOrder$fulfillmentCenterArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Organization
     */
    select?: OrganizationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Organization
     */
    omit?: OrganizationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OrganizationInclude<ExtArgs> | null
    where?: OrganizationWhereInput
  }

  /**
   * SupplyOrder without action
   */
  export type SupplyOrderDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplyOrder
     */
    select?: SupplyOrderSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SupplyOrder
     */
    omit?: SupplyOrderOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplyOrderInclude<ExtArgs> | null
  }


  /**
   * Model SupplyOrderItem
   */

  export type AggregateSupplyOrderItem = {
    _count: SupplyOrderItemCountAggregateOutputType | null
    _avg: SupplyOrderItemAvgAggregateOutputType | null
    _sum: SupplyOrderItemSumAggregateOutputType | null
    _min: SupplyOrderItemMinAggregateOutputType | null
    _max: SupplyOrderItemMaxAggregateOutputType | null
  }

  export type SupplyOrderItemAvgAggregateOutputType = {
    quantity: number | null
    price: Decimal | null
    totalPrice: Decimal | null
  }

  export type SupplyOrderItemSumAggregateOutputType = {
    quantity: number | null
    price: Decimal | null
    totalPrice: Decimal | null
  }

  export type SupplyOrderItemMinAggregateOutputType = {
    id: string | null
    supplyOrderId: string | null
    productId: string | null
    quantity: number | null
    price: Decimal | null
    totalPrice: Decimal | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type SupplyOrderItemMaxAggregateOutputType = {
    id: string | null
    supplyOrderId: string | null
    productId: string | null
    quantity: number | null
    price: Decimal | null
    totalPrice: Decimal | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type SupplyOrderItemCountAggregateOutputType = {
    id: number
    supplyOrderId: number
    productId: number
    quantity: number
    price: number
    totalPrice: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type SupplyOrderItemAvgAggregateInputType = {
    quantity?: true
    price?: true
    totalPrice?: true
  }

  export type SupplyOrderItemSumAggregateInputType = {
    quantity?: true
    price?: true
    totalPrice?: true
  }

  export type SupplyOrderItemMinAggregateInputType = {
    id?: true
    supplyOrderId?: true
    productId?: true
    quantity?: true
    price?: true
    totalPrice?: true
    createdAt?: true
    updatedAt?: true
  }

  export type SupplyOrderItemMaxAggregateInputType = {
    id?: true
    supplyOrderId?: true
    productId?: true
    quantity?: true
    price?: true
    totalPrice?: true
    createdAt?: true
    updatedAt?: true
  }

  export type SupplyOrderItemCountAggregateInputType = {
    id?: true
    supplyOrderId?: true
    productId?: true
    quantity?: true
    price?: true
    totalPrice?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type SupplyOrderItemAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which SupplyOrderItem to aggregate.
     */
    where?: SupplyOrderItemWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SupplyOrderItems to fetch.
     */
    orderBy?: SupplyOrderItemOrderByWithRelationInput | SupplyOrderItemOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: SupplyOrderItemWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SupplyOrderItems 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` SupplyOrderItems.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned SupplyOrderItems
    **/
    _count?: true | SupplyOrderItemCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: SupplyOrderItemAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: SupplyOrderItemSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: SupplyOrderItemMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: SupplyOrderItemMaxAggregateInputType
  }

  export type GetSupplyOrderItemAggregateType<T extends SupplyOrderItemAggregateArgs> = {
        [P in keyof T & keyof AggregateSupplyOrderItem]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateSupplyOrderItem[P]>
      : GetScalarType<T[P], AggregateSupplyOrderItem[P]>
  }




  export type SupplyOrderItemGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: SupplyOrderItemWhereInput
    orderBy?: SupplyOrderItemOrderByWithAggregationInput | SupplyOrderItemOrderByWithAggregationInput[]
    by: SupplyOrderItemScalarFieldEnum[] | SupplyOrderItemScalarFieldEnum
    having?: SupplyOrderItemScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: SupplyOrderItemCountAggregateInputType | true
    _avg?: SupplyOrderItemAvgAggregateInputType
    _sum?: SupplyOrderItemSumAggregateInputType
    _min?: SupplyOrderItemMinAggregateInputType
    _max?: SupplyOrderItemMaxAggregateInputType
  }

  export type SupplyOrderItemGroupByOutputType = {
    id: string
    supplyOrderId: string
    productId: string
    quantity: number
    price: Decimal
    totalPrice: Decimal
    createdAt: Date
    updatedAt: Date
    _count: SupplyOrderItemCountAggregateOutputType | null
    _avg: SupplyOrderItemAvgAggregateOutputType | null
    _sum: SupplyOrderItemSumAggregateOutputType | null
    _min: SupplyOrderItemMinAggregateOutputType | null
    _max: SupplyOrderItemMaxAggregateOutputType | null
  }

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


  export type SupplyOrderItemSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    supplyOrderId?: boolean
    productId?: boolean
    quantity?: boolean
    price?: boolean
    totalPrice?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    supplyOrder?: boolean | SupplyOrderDefaultArgs<ExtArgs>
    product?: boolean | ProductDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["supplyOrderItem"]>

  export type SupplyOrderItemSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    supplyOrderId?: boolean
    productId?: boolean
    quantity?: boolean
    price?: boolean
    totalPrice?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    supplyOrder?: boolean | SupplyOrderDefaultArgs<ExtArgs>
    product?: boolean | ProductDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["supplyOrderItem"]>

  export type SupplyOrderItemSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    supplyOrderId?: boolean
    productId?: boolean
    quantity?: boolean
    price?: boolean
    totalPrice?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    supplyOrder?: boolean | SupplyOrderDefaultArgs<ExtArgs>
    product?: boolean | ProductDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["supplyOrderItem"]>

  export type SupplyOrderItemSelectScalar = {
    id?: boolean
    supplyOrderId?: boolean
    productId?: boolean
    quantity?: boolean
    price?: boolean
    totalPrice?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type SupplyOrderItemOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "supplyOrderId" | "productId" | "quantity" | "price" | "totalPrice" | "createdAt" | "updatedAt", ExtArgs["result"]["supplyOrderItem"]>
  export type SupplyOrderItemInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    supplyOrder?: boolean | SupplyOrderDefaultArgs<ExtArgs>
    product?: boolean | ProductDefaultArgs<ExtArgs>
  }
  export type SupplyOrderItemIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    supplyOrder?: boolean | SupplyOrderDefaultArgs<ExtArgs>
    product?: boolean | ProductDefaultArgs<ExtArgs>
  }
  export type SupplyOrderItemIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    supplyOrder?: boolean | SupplyOrderDefaultArgs<ExtArgs>
    product?: boolean | ProductDefaultArgs<ExtArgs>
  }

  export type $SupplyOrderItemPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "SupplyOrderItem"
    objects: {
      supplyOrder: Prisma.$SupplyOrderPayload<ExtArgs>
      product: Prisma.$ProductPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      supplyOrderId: string
      productId: string
      quantity: number
      price: Prisma.Decimal
      totalPrice: Prisma.Decimal
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["supplyOrderItem"]>
    composites: {}
  }

  type SupplyOrderItemGetPayload<S extends boolean | null | undefined | SupplyOrderItemDefaultArgs> = $Result.GetResult<Prisma.$SupplyOrderItemPayload, S>

  type SupplyOrderItemCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<SupplyOrderItemFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: SupplyOrderItemCountAggregateInputType | true
    }

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

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

    /**
     * Find the first SupplyOrderItem 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 {SupplyOrderItemFindFirstArgs} args - Arguments to find a SupplyOrderItem
     * @example
     * // Get one SupplyOrderItem
     * const supplyOrderItem = await prisma.supplyOrderItem.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends SupplyOrderItemFindFirstArgs>(args?: SelectSubset<T, SupplyOrderItemFindFirstArgs<ExtArgs>>): Prisma__SupplyOrderItemClient<$Result.GetResult<Prisma.$SupplyOrderItemPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first SupplyOrderItem 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 {SupplyOrderItemFindFirstOrThrowArgs} args - Arguments to find a SupplyOrderItem
     * @example
     * // Get one SupplyOrderItem
     * const supplyOrderItem = await prisma.supplyOrderItem.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends SupplyOrderItemFindFirstOrThrowArgs>(args?: SelectSubset<T, SupplyOrderItemFindFirstOrThrowArgs<ExtArgs>>): Prisma__SupplyOrderItemClient<$Result.GetResult<Prisma.$SupplyOrderItemPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more SupplyOrderItems 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 {SupplyOrderItemFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all SupplyOrderItems
     * const supplyOrderItems = await prisma.supplyOrderItem.findMany()
     * 
     * // Get first 10 SupplyOrderItems
     * const supplyOrderItems = await prisma.supplyOrderItem.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const supplyOrderItemWithIdOnly = await prisma.supplyOrderItem.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends SupplyOrderItemFindManyArgs>(args?: SelectSubset<T, SupplyOrderItemFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SupplyOrderItemPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a SupplyOrderItem.
     * @param {SupplyOrderItemCreateArgs} args - Arguments to create a SupplyOrderItem.
     * @example
     * // Create one SupplyOrderItem
     * const SupplyOrderItem = await prisma.supplyOrderItem.create({
     *   data: {
     *     // ... data to create a SupplyOrderItem
     *   }
     * })
     * 
     */
    create<T extends SupplyOrderItemCreateArgs>(args: SelectSubset<T, SupplyOrderItemCreateArgs<ExtArgs>>): Prisma__SupplyOrderItemClient<$Result.GetResult<Prisma.$SupplyOrderItemPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

    /**
     * Create many SupplyOrderItems and returns the data saved in the database.
     * @param {SupplyOrderItemCreateManyAndReturnArgs} args - Arguments to create many SupplyOrderItems.
     * @example
     * // Create many SupplyOrderItems
     * const supplyOrderItem = await prisma.supplyOrderItem.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many SupplyOrderItems and only return the `id`
     * const supplyOrderItemWithIdOnly = await prisma.supplyOrderItem.createManyAndReturn({
     *   select: { id: true },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    createManyAndReturn<T extends SupplyOrderItemCreateManyAndReturnArgs>(args?: SelectSubset<T, SupplyOrderItemCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SupplyOrderItemPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a SupplyOrderItem.
     * @param {SupplyOrderItemDeleteArgs} args - Arguments to delete one SupplyOrderItem.
     * @example
     * // Delete one SupplyOrderItem
     * const SupplyOrderItem = await prisma.supplyOrderItem.delete({
     *   where: {
     *     // ... filter to delete one SupplyOrderItem
     *   }
     * })
     * 
     */
    delete<T extends SupplyOrderItemDeleteArgs>(args: SelectSubset<T, SupplyOrderItemDeleteArgs<ExtArgs>>): Prisma__SupplyOrderItemClient<$Result.GetResult<Prisma.$SupplyOrderItemPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one SupplyOrderItem.
     * @param {SupplyOrderItemUpdateArgs} args - Arguments to update one SupplyOrderItem.
     * @example
     * // Update one SupplyOrderItem
     * const supplyOrderItem = await prisma.supplyOrderItem.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends SupplyOrderItemUpdateArgs>(args: SelectSubset<T, SupplyOrderItemUpdateArgs<ExtArgs>>): Prisma__SupplyOrderItemClient<$Result.GetResult<Prisma.$SupplyOrderItemPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

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

    /**
     * Update zero or more SupplyOrderItems and returns the data updated in the database.
     * @param {SupplyOrderItemUpdateManyAndReturnArgs} args - Arguments to update many SupplyOrderItems.
     * @example
     * // Update many SupplyOrderItems
     * const supplyOrderItem = await prisma.supplyOrderItem.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more SupplyOrderItems and only return the `id`
     * const supplyOrderItemWithIdOnly = await prisma.supplyOrderItem.updateManyAndReturn({
     *   select: { id: true },
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    updateManyAndReturn<T extends SupplyOrderItemUpdateManyAndReturnArgs>(args: SelectSubset<T, SupplyOrderItemUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SupplyOrderItemPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

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


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

    /**
     * Allows you to perform aggregations operations on a SupplyOrderItem.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SupplyOrderItemAggregateArgs} 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 SupplyOrderItemAggregateArgs>(args: Subset<T, SupplyOrderItemAggregateArgs>): Prisma.PrismaPromise<GetSupplyOrderItemAggregateType<T>>

    /**
     * Group by SupplyOrderItem.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SupplyOrderItemGroupByArgs} 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 SupplyOrderItemGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: SupplyOrderItemGroupByArgs['orderBy'] }
        : { orderBy?: SupplyOrderItemGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends 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 Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends 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 Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends 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 True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, SupplyOrderItemGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetSupplyOrderItemGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the SupplyOrderItem model
   */
  readonly fields: SupplyOrderItemFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for SupplyOrderItem.
   * 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__SupplyOrderItemClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    supplyOrder<T extends SupplyOrderDefaultArgs<ExtArgs> = {}>(args?: Subset<T, SupplyOrderDefaultArgs<ExtArgs>>): Prisma__SupplyOrderClient<$Result.GetResult<Prisma.$SupplyOrderPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    product<T extends ProductDefaultArgs<ExtArgs> = {}>(args?: Subset<T, ProductDefaultArgs<ExtArgs>>): Prisma__ProductClient<$Result.GetResult<Prisma.$ProductPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * 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): $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): $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): $Utils.JsPromise<T>
  }




  /**
   * Fields of the SupplyOrderItem model
   */
  interface SupplyOrderItemFieldRefs {
    readonly id: FieldRef<"SupplyOrderItem", 'String'>
    readonly supplyOrderId: FieldRef<"SupplyOrderItem", 'String'>
    readonly productId: FieldRef<"SupplyOrderItem", 'String'>
    readonly quantity: FieldRef<"SupplyOrderItem", 'Int'>
    readonly price: FieldRef<"SupplyOrderItem", 'Decimal'>
    readonly totalPrice: FieldRef<"SupplyOrderItem", 'Decimal'>
    readonly createdAt: FieldRef<"SupplyOrderItem", 'DateTime'>
    readonly updatedAt: FieldRef<"SupplyOrderItem", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * SupplyOrderItem findUnique
   */
  export type SupplyOrderItemFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplyOrderItem
     */
    select?: SupplyOrderItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SupplyOrderItem
     */
    omit?: SupplyOrderItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplyOrderItemInclude<ExtArgs> | null
    /**
     * Filter, which SupplyOrderItem to fetch.
     */
    where: SupplyOrderItemWhereUniqueInput
  }

  /**
   * SupplyOrderItem findUniqueOrThrow
   */
  export type SupplyOrderItemFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplyOrderItem
     */
    select?: SupplyOrderItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SupplyOrderItem
     */
    omit?: SupplyOrderItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplyOrderItemInclude<ExtArgs> | null
    /**
     * Filter, which SupplyOrderItem to fetch.
     */
    where: SupplyOrderItemWhereUniqueInput
  }

  /**
   * SupplyOrderItem findFirst
   */
  export type SupplyOrderItemFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplyOrderItem
     */
    select?: SupplyOrderItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SupplyOrderItem
     */
    omit?: SupplyOrderItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplyOrderItemInclude<ExtArgs> | null
    /**
     * Filter, which SupplyOrderItem to fetch.
     */
    where?: SupplyOrderItemWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SupplyOrderItems to fetch.
     */
    orderBy?: SupplyOrderItemOrderByWithRelationInput | SupplyOrderItemOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for SupplyOrderItems.
     */
    cursor?: SupplyOrderItemWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SupplyOrderItems 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` SupplyOrderItems.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of SupplyOrderItems.
     */
    distinct?: SupplyOrderItemScalarFieldEnum | SupplyOrderItemScalarFieldEnum[]
  }

  /**
   * SupplyOrderItem findFirstOrThrow
   */
  export type SupplyOrderItemFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplyOrderItem
     */
    select?: SupplyOrderItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SupplyOrderItem
     */
    omit?: SupplyOrderItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplyOrderItemInclude<ExtArgs> | null
    /**
     * Filter, which SupplyOrderItem to fetch.
     */
    where?: SupplyOrderItemWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SupplyOrderItems to fetch.
     */
    orderBy?: SupplyOrderItemOrderByWithRelationInput | SupplyOrderItemOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for SupplyOrderItems.
     */
    cursor?: SupplyOrderItemWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SupplyOrderItems 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` SupplyOrderItems.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of SupplyOrderItems.
     */
    distinct?: SupplyOrderItemScalarFieldEnum | SupplyOrderItemScalarFieldEnum[]
  }

  /**
   * SupplyOrderItem findMany
   */
  export type SupplyOrderItemFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplyOrderItem
     */
    select?: SupplyOrderItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SupplyOrderItem
     */
    omit?: SupplyOrderItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplyOrderItemInclude<ExtArgs> | null
    /**
     * Filter, which SupplyOrderItems to fetch.
     */
    where?: SupplyOrderItemWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SupplyOrderItems to fetch.
     */
    orderBy?: SupplyOrderItemOrderByWithRelationInput | SupplyOrderItemOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing SupplyOrderItems.
     */
    cursor?: SupplyOrderItemWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SupplyOrderItems 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` SupplyOrderItems.
     */
    skip?: number
    distinct?: SupplyOrderItemScalarFieldEnum | SupplyOrderItemScalarFieldEnum[]
  }

  /**
   * SupplyOrderItem create
   */
  export type SupplyOrderItemCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplyOrderItem
     */
    select?: SupplyOrderItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SupplyOrderItem
     */
    omit?: SupplyOrderItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplyOrderItemInclude<ExtArgs> | null
    /**
     * The data needed to create a SupplyOrderItem.
     */
    data: XOR<SupplyOrderItemCreateInput, SupplyOrderItemUncheckedCreateInput>
  }

  /**
   * SupplyOrderItem createMany
   */
  export type SupplyOrderItemCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many SupplyOrderItems.
     */
    data: SupplyOrderItemCreateManyInput | SupplyOrderItemCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * SupplyOrderItem createManyAndReturn
   */
  export type SupplyOrderItemCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplyOrderItem
     */
    select?: SupplyOrderItemSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the SupplyOrderItem
     */
    omit?: SupplyOrderItemOmit<ExtArgs> | null
    /**
     * The data used to create many SupplyOrderItems.
     */
    data: SupplyOrderItemCreateManyInput | SupplyOrderItemCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplyOrderItemIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * SupplyOrderItem update
   */
  export type SupplyOrderItemUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplyOrderItem
     */
    select?: SupplyOrderItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SupplyOrderItem
     */
    omit?: SupplyOrderItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplyOrderItemInclude<ExtArgs> | null
    /**
     * The data needed to update a SupplyOrderItem.
     */
    data: XOR<SupplyOrderItemUpdateInput, SupplyOrderItemUncheckedUpdateInput>
    /**
     * Choose, which SupplyOrderItem to update.
     */
    where: SupplyOrderItemWhereUniqueInput
  }

  /**
   * SupplyOrderItem updateMany
   */
  export type SupplyOrderItemUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update SupplyOrderItems.
     */
    data: XOR<SupplyOrderItemUpdateManyMutationInput, SupplyOrderItemUncheckedUpdateManyInput>
    /**
     * Filter which SupplyOrderItems to update
     */
    where?: SupplyOrderItemWhereInput
    /**
     * Limit how many SupplyOrderItems to update.
     */
    limit?: number
  }

  /**
   * SupplyOrderItem updateManyAndReturn
   */
  export type SupplyOrderItemUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplyOrderItem
     */
    select?: SupplyOrderItemSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the SupplyOrderItem
     */
    omit?: SupplyOrderItemOmit<ExtArgs> | null
    /**
     * The data used to update SupplyOrderItems.
     */
    data: XOR<SupplyOrderItemUpdateManyMutationInput, SupplyOrderItemUncheckedUpdateManyInput>
    /**
     * Filter which SupplyOrderItems to update
     */
    where?: SupplyOrderItemWhereInput
    /**
     * Limit how many SupplyOrderItems to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplyOrderItemIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * SupplyOrderItem upsert
   */
  export type SupplyOrderItemUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplyOrderItem
     */
    select?: SupplyOrderItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SupplyOrderItem
     */
    omit?: SupplyOrderItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplyOrderItemInclude<ExtArgs> | null
    /**
     * The filter to search for the SupplyOrderItem to update in case it exists.
     */
    where: SupplyOrderItemWhereUniqueInput
    /**
     * In case the SupplyOrderItem found by the `where` argument doesn't exist, create a new SupplyOrderItem with this data.
     */
    create: XOR<SupplyOrderItemCreateInput, SupplyOrderItemUncheckedCreateInput>
    /**
     * In case the SupplyOrderItem was found with the provided `where` argument, update it with this data.
     */
    update: XOR<SupplyOrderItemUpdateInput, SupplyOrderItemUncheckedUpdateInput>
  }

  /**
   * SupplyOrderItem delete
   */
  export type SupplyOrderItemDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplyOrderItem
     */
    select?: SupplyOrderItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SupplyOrderItem
     */
    omit?: SupplyOrderItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplyOrderItemInclude<ExtArgs> | null
    /**
     * Filter which SupplyOrderItem to delete.
     */
    where: SupplyOrderItemWhereUniqueInput
  }

  /**
   * SupplyOrderItem deleteMany
   */
  export type SupplyOrderItemDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which SupplyOrderItems to delete
     */
    where?: SupplyOrderItemWhereInput
    /**
     * Limit how many SupplyOrderItems to delete.
     */
    limit?: number
  }

  /**
   * SupplyOrderItem without action
   */
  export type SupplyOrderItemDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplyOrderItem
     */
    select?: SupplyOrderItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SupplyOrderItem
     */
    omit?: SupplyOrderItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplyOrderItemInclude<ExtArgs> | null
  }


  /**
   * Model SupplySupplier
   */

  export type AggregateSupplySupplier = {
    _count: SupplySupplierCountAggregateOutputType | null
    _min: SupplySupplierMinAggregateOutputType | null
    _max: SupplySupplierMaxAggregateOutputType | null
  }

  export type SupplySupplierMinAggregateOutputType = {
    id: string | null
    name: string | null
    contactName: string | null
    phone: string | null
    market: string | null
    address: string | null
    place: string | null
    telegram: string | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type SupplySupplierMaxAggregateOutputType = {
    id: string | null
    name: string | null
    contactName: string | null
    phone: string | null
    market: string | null
    address: string | null
    place: string | null
    telegram: string | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type SupplySupplierCountAggregateOutputType = {
    id: number
    name: number
    contactName: number
    phone: number
    market: number
    address: number
    place: number
    telegram: number
    organizationId: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type SupplySupplierMinAggregateInputType = {
    id?: true
    name?: true
    contactName?: true
    phone?: true
    market?: true
    address?: true
    place?: true
    telegram?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
  }

  export type SupplySupplierMaxAggregateInputType = {
    id?: true
    name?: true
    contactName?: true
    phone?: true
    market?: true
    address?: true
    place?: true
    telegram?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
  }

  export type SupplySupplierCountAggregateInputType = {
    id?: true
    name?: true
    contactName?: true
    phone?: true
    market?: true
    address?: true
    place?: true
    telegram?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type SupplySupplierAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which SupplySupplier to aggregate.
     */
    where?: SupplySupplierWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SupplySuppliers to fetch.
     */
    orderBy?: SupplySupplierOrderByWithRelationInput | SupplySupplierOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: SupplySupplierWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SupplySuppliers 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` SupplySuppliers.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned SupplySuppliers
    **/
    _count?: true | SupplySupplierCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: SupplySupplierMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: SupplySupplierMaxAggregateInputType
  }

  export type GetSupplySupplierAggregateType<T extends SupplySupplierAggregateArgs> = {
        [P in keyof T & keyof AggregateSupplySupplier]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateSupplySupplier[P]>
      : GetScalarType<T[P], AggregateSupplySupplier[P]>
  }




  export type SupplySupplierGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: SupplySupplierWhereInput
    orderBy?: SupplySupplierOrderByWithAggregationInput | SupplySupplierOrderByWithAggregationInput[]
    by: SupplySupplierScalarFieldEnum[] | SupplySupplierScalarFieldEnum
    having?: SupplySupplierScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: SupplySupplierCountAggregateInputType | true
    _min?: SupplySupplierMinAggregateInputType
    _max?: SupplySupplierMaxAggregateInputType
  }

  export type SupplySupplierGroupByOutputType = {
    id: string
    name: string
    contactName: string
    phone: string
    market: string | null
    address: string | null
    place: string | null
    telegram: string | null
    organizationId: string
    createdAt: Date
    updatedAt: Date
    _count: SupplySupplierCountAggregateOutputType | null
    _min: SupplySupplierMinAggregateOutputType | null
    _max: SupplySupplierMaxAggregateOutputType | null
  }

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


  export type SupplySupplierSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    contactName?: boolean
    phone?: boolean
    market?: boolean
    address?: boolean
    place?: boolean
    telegram?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["supplySupplier"]>

  export type SupplySupplierSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    contactName?: boolean
    phone?: boolean
    market?: boolean
    address?: boolean
    place?: boolean
    telegram?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["supplySupplier"]>

  export type SupplySupplierSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    contactName?: boolean
    phone?: boolean
    market?: boolean
    address?: boolean
    place?: boolean
    telegram?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["supplySupplier"]>

  export type SupplySupplierSelectScalar = {
    id?: boolean
    name?: boolean
    contactName?: boolean
    phone?: boolean
    market?: boolean
    address?: boolean
    place?: boolean
    telegram?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type SupplySupplierOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "name" | "contactName" | "phone" | "market" | "address" | "place" | "telegram" | "organizationId" | "createdAt" | "updatedAt", ExtArgs["result"]["supplySupplier"]>
  export type SupplySupplierInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }
  export type SupplySupplierIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }
  export type SupplySupplierIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }

  export type $SupplySupplierPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "SupplySupplier"
    objects: {
      organization: Prisma.$OrganizationPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      name: string
      contactName: string
      phone: string
      market: string | null
      address: string | null
      place: string | null
      telegram: string | null
      organizationId: string
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["supplySupplier"]>
    composites: {}
  }

  type SupplySupplierGetPayload<S extends boolean | null | undefined | SupplySupplierDefaultArgs> = $Result.GetResult<Prisma.$SupplySupplierPayload, S>

  type SupplySupplierCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<SupplySupplierFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: SupplySupplierCountAggregateInputType | true
    }

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

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

    /**
     * Find the first SupplySupplier 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 {SupplySupplierFindFirstArgs} args - Arguments to find a SupplySupplier
     * @example
     * // Get one SupplySupplier
     * const supplySupplier = await prisma.supplySupplier.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends SupplySupplierFindFirstArgs>(args?: SelectSubset<T, SupplySupplierFindFirstArgs<ExtArgs>>): Prisma__SupplySupplierClient<$Result.GetResult<Prisma.$SupplySupplierPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first SupplySupplier 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 {SupplySupplierFindFirstOrThrowArgs} args - Arguments to find a SupplySupplier
     * @example
     * // Get one SupplySupplier
     * const supplySupplier = await prisma.supplySupplier.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends SupplySupplierFindFirstOrThrowArgs>(args?: SelectSubset<T, SupplySupplierFindFirstOrThrowArgs<ExtArgs>>): Prisma__SupplySupplierClient<$Result.GetResult<Prisma.$SupplySupplierPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more SupplySuppliers 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 {SupplySupplierFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all SupplySuppliers
     * const supplySuppliers = await prisma.supplySupplier.findMany()
     * 
     * // Get first 10 SupplySuppliers
     * const supplySuppliers = await prisma.supplySupplier.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const supplySupplierWithIdOnly = await prisma.supplySupplier.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends SupplySupplierFindManyArgs>(args?: SelectSubset<T, SupplySupplierFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SupplySupplierPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a SupplySupplier.
     * @param {SupplySupplierCreateArgs} args - Arguments to create a SupplySupplier.
     * @example
     * // Create one SupplySupplier
     * const SupplySupplier = await prisma.supplySupplier.create({
     *   data: {
     *     // ... data to create a SupplySupplier
     *   }
     * })
     * 
     */
    create<T extends SupplySupplierCreateArgs>(args: SelectSubset<T, SupplySupplierCreateArgs<ExtArgs>>): Prisma__SupplySupplierClient<$Result.GetResult<Prisma.$SupplySupplierPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

    /**
     * Create many SupplySuppliers and returns the data saved in the database.
     * @param {SupplySupplierCreateManyAndReturnArgs} args - Arguments to create many SupplySuppliers.
     * @example
     * // Create many SupplySuppliers
     * const supplySupplier = await prisma.supplySupplier.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many SupplySuppliers and only return the `id`
     * const supplySupplierWithIdOnly = await prisma.supplySupplier.createManyAndReturn({
     *   select: { id: true },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    createManyAndReturn<T extends SupplySupplierCreateManyAndReturnArgs>(args?: SelectSubset<T, SupplySupplierCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SupplySupplierPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a SupplySupplier.
     * @param {SupplySupplierDeleteArgs} args - Arguments to delete one SupplySupplier.
     * @example
     * // Delete one SupplySupplier
     * const SupplySupplier = await prisma.supplySupplier.delete({
     *   where: {
     *     // ... filter to delete one SupplySupplier
     *   }
     * })
     * 
     */
    delete<T extends SupplySupplierDeleteArgs>(args: SelectSubset<T, SupplySupplierDeleteArgs<ExtArgs>>): Prisma__SupplySupplierClient<$Result.GetResult<Prisma.$SupplySupplierPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one SupplySupplier.
     * @param {SupplySupplierUpdateArgs} args - Arguments to update one SupplySupplier.
     * @example
     * // Update one SupplySupplier
     * const supplySupplier = await prisma.supplySupplier.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends SupplySupplierUpdateArgs>(args: SelectSubset<T, SupplySupplierUpdateArgs<ExtArgs>>): Prisma__SupplySupplierClient<$Result.GetResult<Prisma.$SupplySupplierPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

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

    /**
     * Update zero or more SupplySuppliers and returns the data updated in the database.
     * @param {SupplySupplierUpdateManyAndReturnArgs} args - Arguments to update many SupplySuppliers.
     * @example
     * // Update many SupplySuppliers
     * const supplySupplier = await prisma.supplySupplier.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more SupplySuppliers and only return the `id`
     * const supplySupplierWithIdOnly = await prisma.supplySupplier.updateManyAndReturn({
     *   select: { id: true },
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    updateManyAndReturn<T extends SupplySupplierUpdateManyAndReturnArgs>(args: SelectSubset<T, SupplySupplierUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SupplySupplierPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

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


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

    /**
     * Allows you to perform aggregations operations on a SupplySupplier.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SupplySupplierAggregateArgs} 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 SupplySupplierAggregateArgs>(args: Subset<T, SupplySupplierAggregateArgs>): Prisma.PrismaPromise<GetSupplySupplierAggregateType<T>>

    /**
     * Group by SupplySupplier.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SupplySupplierGroupByArgs} 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 SupplySupplierGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: SupplySupplierGroupByArgs['orderBy'] }
        : { orderBy?: SupplySupplierGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends 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 Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends 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 Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends 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 True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, SupplySupplierGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetSupplySupplierGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the SupplySupplier model
   */
  readonly fields: SupplySupplierFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for SupplySupplier.
   * 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__SupplySupplierClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    organization<T extends OrganizationDefaultArgs<ExtArgs> = {}>(args?: Subset<T, OrganizationDefaultArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * 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): $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): $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): $Utils.JsPromise<T>
  }




  /**
   * Fields of the SupplySupplier model
   */
  interface SupplySupplierFieldRefs {
    readonly id: FieldRef<"SupplySupplier", 'String'>
    readonly name: FieldRef<"SupplySupplier", 'String'>
    readonly contactName: FieldRef<"SupplySupplier", 'String'>
    readonly phone: FieldRef<"SupplySupplier", 'String'>
    readonly market: FieldRef<"SupplySupplier", 'String'>
    readonly address: FieldRef<"SupplySupplier", 'String'>
    readonly place: FieldRef<"SupplySupplier", 'String'>
    readonly telegram: FieldRef<"SupplySupplier", 'String'>
    readonly organizationId: FieldRef<"SupplySupplier", 'String'>
    readonly createdAt: FieldRef<"SupplySupplier", 'DateTime'>
    readonly updatedAt: FieldRef<"SupplySupplier", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * SupplySupplier findUnique
   */
  export type SupplySupplierFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplySupplier
     */
    select?: SupplySupplierSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SupplySupplier
     */
    omit?: SupplySupplierOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplySupplierInclude<ExtArgs> | null
    /**
     * Filter, which SupplySupplier to fetch.
     */
    where: SupplySupplierWhereUniqueInput
  }

  /**
   * SupplySupplier findUniqueOrThrow
   */
  export type SupplySupplierFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplySupplier
     */
    select?: SupplySupplierSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SupplySupplier
     */
    omit?: SupplySupplierOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplySupplierInclude<ExtArgs> | null
    /**
     * Filter, which SupplySupplier to fetch.
     */
    where: SupplySupplierWhereUniqueInput
  }

  /**
   * SupplySupplier findFirst
   */
  export type SupplySupplierFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplySupplier
     */
    select?: SupplySupplierSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SupplySupplier
     */
    omit?: SupplySupplierOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplySupplierInclude<ExtArgs> | null
    /**
     * Filter, which SupplySupplier to fetch.
     */
    where?: SupplySupplierWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SupplySuppliers to fetch.
     */
    orderBy?: SupplySupplierOrderByWithRelationInput | SupplySupplierOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for SupplySuppliers.
     */
    cursor?: SupplySupplierWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SupplySuppliers 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` SupplySuppliers.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of SupplySuppliers.
     */
    distinct?: SupplySupplierScalarFieldEnum | SupplySupplierScalarFieldEnum[]
  }

  /**
   * SupplySupplier findFirstOrThrow
   */
  export type SupplySupplierFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplySupplier
     */
    select?: SupplySupplierSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SupplySupplier
     */
    omit?: SupplySupplierOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplySupplierInclude<ExtArgs> | null
    /**
     * Filter, which SupplySupplier to fetch.
     */
    where?: SupplySupplierWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SupplySuppliers to fetch.
     */
    orderBy?: SupplySupplierOrderByWithRelationInput | SupplySupplierOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for SupplySuppliers.
     */
    cursor?: SupplySupplierWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SupplySuppliers 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` SupplySuppliers.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of SupplySuppliers.
     */
    distinct?: SupplySupplierScalarFieldEnum | SupplySupplierScalarFieldEnum[]
  }

  /**
   * SupplySupplier findMany
   */
  export type SupplySupplierFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplySupplier
     */
    select?: SupplySupplierSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SupplySupplier
     */
    omit?: SupplySupplierOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplySupplierInclude<ExtArgs> | null
    /**
     * Filter, which SupplySuppliers to fetch.
     */
    where?: SupplySupplierWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SupplySuppliers to fetch.
     */
    orderBy?: SupplySupplierOrderByWithRelationInput | SupplySupplierOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing SupplySuppliers.
     */
    cursor?: SupplySupplierWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SupplySuppliers 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` SupplySuppliers.
     */
    skip?: number
    distinct?: SupplySupplierScalarFieldEnum | SupplySupplierScalarFieldEnum[]
  }

  /**
   * SupplySupplier create
   */
  export type SupplySupplierCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplySupplier
     */
    select?: SupplySupplierSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SupplySupplier
     */
    omit?: SupplySupplierOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplySupplierInclude<ExtArgs> | null
    /**
     * The data needed to create a SupplySupplier.
     */
    data: XOR<SupplySupplierCreateInput, SupplySupplierUncheckedCreateInput>
  }

  /**
   * SupplySupplier createMany
   */
  export type SupplySupplierCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many SupplySuppliers.
     */
    data: SupplySupplierCreateManyInput | SupplySupplierCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * SupplySupplier createManyAndReturn
   */
  export type SupplySupplierCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplySupplier
     */
    select?: SupplySupplierSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the SupplySupplier
     */
    omit?: SupplySupplierOmit<ExtArgs> | null
    /**
     * The data used to create many SupplySuppliers.
     */
    data: SupplySupplierCreateManyInput | SupplySupplierCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplySupplierIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * SupplySupplier update
   */
  export type SupplySupplierUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplySupplier
     */
    select?: SupplySupplierSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SupplySupplier
     */
    omit?: SupplySupplierOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplySupplierInclude<ExtArgs> | null
    /**
     * The data needed to update a SupplySupplier.
     */
    data: XOR<SupplySupplierUpdateInput, SupplySupplierUncheckedUpdateInput>
    /**
     * Choose, which SupplySupplier to update.
     */
    where: SupplySupplierWhereUniqueInput
  }

  /**
   * SupplySupplier updateMany
   */
  export type SupplySupplierUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update SupplySuppliers.
     */
    data: XOR<SupplySupplierUpdateManyMutationInput, SupplySupplierUncheckedUpdateManyInput>
    /**
     * Filter which SupplySuppliers to update
     */
    where?: SupplySupplierWhereInput
    /**
     * Limit how many SupplySuppliers to update.
     */
    limit?: number
  }

  /**
   * SupplySupplier updateManyAndReturn
   */
  export type SupplySupplierUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplySupplier
     */
    select?: SupplySupplierSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the SupplySupplier
     */
    omit?: SupplySupplierOmit<ExtArgs> | null
    /**
     * The data used to update SupplySuppliers.
     */
    data: XOR<SupplySupplierUpdateManyMutationInput, SupplySupplierUncheckedUpdateManyInput>
    /**
     * Filter which SupplySuppliers to update
     */
    where?: SupplySupplierWhereInput
    /**
     * Limit how many SupplySuppliers to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplySupplierIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * SupplySupplier upsert
   */
  export type SupplySupplierUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplySupplier
     */
    select?: SupplySupplierSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SupplySupplier
     */
    omit?: SupplySupplierOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplySupplierInclude<ExtArgs> | null
    /**
     * The filter to search for the SupplySupplier to update in case it exists.
     */
    where: SupplySupplierWhereUniqueInput
    /**
     * In case the SupplySupplier found by the `where` argument doesn't exist, create a new SupplySupplier with this data.
     */
    create: XOR<SupplySupplierCreateInput, SupplySupplierUncheckedCreateInput>
    /**
     * In case the SupplySupplier was found with the provided `where` argument, update it with this data.
     */
    update: XOR<SupplySupplierUpdateInput, SupplySupplierUncheckedUpdateInput>
  }

  /**
   * SupplySupplier delete
   */
  export type SupplySupplierDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplySupplier
     */
    select?: SupplySupplierSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SupplySupplier
     */
    omit?: SupplySupplierOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplySupplierInclude<ExtArgs> | null
    /**
     * Filter which SupplySupplier to delete.
     */
    where: SupplySupplierWhereUniqueInput
  }

  /**
   * SupplySupplier deleteMany
   */
  export type SupplySupplierDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which SupplySuppliers to delete
     */
    where?: SupplySupplierWhereInput
    /**
     * Limit how many SupplySuppliers to delete.
     */
    limit?: number
  }

  /**
   * SupplySupplier without action
   */
  export type SupplySupplierDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplySupplier
     */
    select?: SupplySupplierSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SupplySupplier
     */
    omit?: SupplySupplierOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplySupplierInclude<ExtArgs> | null
  }


  /**
   * Enums
   */

  export const TransactionIsolationLevel: {
    ReadUncommitted: 'ReadUncommitted',
    ReadCommitted: 'ReadCommitted',
    RepeatableRead: 'RepeatableRead',
    Serializable: 'Serializable'
  };

  export type TransactionIsolationLevel = (typeof TransactionIsolationLevel)[keyof typeof TransactionIsolationLevel]


  export const UserScalarFieldEnum: {
    id: 'id',
    phone: 'phone',
    avatar: 'avatar',
    managerName: 'managerName',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    organizationId: 'organizationId'
  };

  export type UserScalarFieldEnum = (typeof UserScalarFieldEnum)[keyof typeof UserScalarFieldEnum]


  export const AdminScalarFieldEnum: {
    id: 'id',
    username: 'username',
    password: 'password',
    email: 'email',
    isActive: 'isActive',
    lastLogin: 'lastLogin',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type AdminScalarFieldEnum = (typeof AdminScalarFieldEnum)[keyof typeof AdminScalarFieldEnum]


  export const SmsCodeScalarFieldEnum: {
    id: 'id',
    code: 'code',
    phone: 'phone',
    expiresAt: 'expiresAt',
    isUsed: 'isUsed',
    attempts: 'attempts',
    maxAttempts: 'maxAttempts',
    createdAt: 'createdAt',
    userId: 'userId'
  };

  export type SmsCodeScalarFieldEnum = (typeof SmsCodeScalarFieldEnum)[keyof typeof SmsCodeScalarFieldEnum]


  export const OrganizationScalarFieldEnum: {
    id: 'id',
    inn: 'inn',
    kpp: 'kpp',
    name: 'name',
    fullName: 'fullName',
    ogrn: 'ogrn',
    ogrnDate: 'ogrnDate',
    type: 'type',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    address: 'address',
    addressFull: 'addressFull',
    status: 'status',
    actualityDate: 'actualityDate',
    registrationDate: 'registrationDate',
    liquidationDate: 'liquidationDate',
    managementName: 'managementName',
    managementPost: 'managementPost',
    opfCode: 'opfCode',
    opfFull: 'opfFull',
    opfShort: 'opfShort',
    okato: 'okato',
    oktmo: 'oktmo',
    okpo: 'okpo',
    okved: 'okved',
    phones: 'phones',
    emails: 'emails',
    employeeCount: 'employeeCount',
    revenue: 'revenue',
    taxSystem: 'taxSystem',
    dadataData: 'dadataData'
  };

  export type OrganizationScalarFieldEnum = (typeof OrganizationScalarFieldEnum)[keyof typeof OrganizationScalarFieldEnum]


  export const ApiKeyScalarFieldEnum: {
    id: 'id',
    marketplace: 'marketplace',
    apiKey: 'apiKey',
    isActive: 'isActive',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    validationData: 'validationData',
    organizationId: 'organizationId'
  };

  export type ApiKeyScalarFieldEnum = (typeof ApiKeyScalarFieldEnum)[keyof typeof ApiKeyScalarFieldEnum]


  export const CounterpartyRequestScalarFieldEnum: {
    id: 'id',
    status: 'status',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    senderId: 'senderId',
    receiverId: 'receiverId',
    message: 'message'
  };

  export type CounterpartyRequestScalarFieldEnum = (typeof CounterpartyRequestScalarFieldEnum)[keyof typeof CounterpartyRequestScalarFieldEnum]


  export const CounterpartyScalarFieldEnum: {
    id: 'id',
    createdAt: 'createdAt',
    organizationId: 'organizationId',
    counterpartyId: 'counterpartyId'
  };

  export type CounterpartyScalarFieldEnum = (typeof CounterpartyScalarFieldEnum)[keyof typeof CounterpartyScalarFieldEnum]


  export const MessageScalarFieldEnum: {
    id: 'id',
    content: 'content',
    type: 'type',
    voiceUrl: 'voiceUrl',
    voiceDuration: 'voiceDuration',
    fileUrl: 'fileUrl',
    fileName: 'fileName',
    fileSize: 'fileSize',
    fileType: 'fileType',
    isRead: 'isRead',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    senderId: 'senderId',
    senderOrganizationId: 'senderOrganizationId',
    receiverOrganizationId: 'receiverOrganizationId'
  };

  export type MessageScalarFieldEnum = (typeof MessageScalarFieldEnum)[keyof typeof MessageScalarFieldEnum]


  export const ServiceScalarFieldEnum: {
    id: 'id',
    name: 'name',
    description: 'description',
    price: 'price',
    imageUrl: 'imageUrl',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    organizationId: 'organizationId'
  };

  export type ServiceScalarFieldEnum = (typeof ServiceScalarFieldEnum)[keyof typeof ServiceScalarFieldEnum]


  export const SupplyScalarFieldEnum: {
    id: 'id',
    name: 'name',
    description: 'description',
    price: 'price',
    quantity: 'quantity',
    unit: 'unit',
    category: 'category',
    status: 'status',
    date: 'date',
    supplier: 'supplier',
    minStock: 'minStock',
    currentStock: 'currentStock',
    imageUrl: 'imageUrl',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    organizationId: 'organizationId'
  };

  export type SupplyScalarFieldEnum = (typeof SupplyScalarFieldEnum)[keyof typeof SupplyScalarFieldEnum]


  export const CategoryScalarFieldEnum: {
    id: 'id',
    name: 'name',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type CategoryScalarFieldEnum = (typeof CategoryScalarFieldEnum)[keyof typeof CategoryScalarFieldEnum]


  export const ProductScalarFieldEnum: {
    id: 'id',
    name: 'name',
    article: 'article',
    description: 'description',
    price: 'price',
    quantity: 'quantity',
    categoryId: 'categoryId',
    brand: 'brand',
    color: 'color',
    size: 'size',
    weight: 'weight',
    dimensions: 'dimensions',
    material: 'material',
    images: 'images',
    mainImage: 'mainImage',
    isActive: 'isActive',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    organizationId: 'organizationId'
  };

  export type ProductScalarFieldEnum = (typeof ProductScalarFieldEnum)[keyof typeof ProductScalarFieldEnum]


  export const CartScalarFieldEnum: {
    id: 'id',
    organizationId: 'organizationId',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type CartScalarFieldEnum = (typeof CartScalarFieldEnum)[keyof typeof CartScalarFieldEnum]


  export const CartItemScalarFieldEnum: {
    id: 'id',
    cartId: 'cartId',
    productId: 'productId',
    quantity: 'quantity',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type CartItemScalarFieldEnum = (typeof CartItemScalarFieldEnum)[keyof typeof CartItemScalarFieldEnum]


  export const FavoritesScalarFieldEnum: {
    id: 'id',
    organizationId: 'organizationId',
    productId: 'productId',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type FavoritesScalarFieldEnum = (typeof FavoritesScalarFieldEnum)[keyof typeof FavoritesScalarFieldEnum]


  export const EmployeeScalarFieldEnum: {
    id: 'id',
    firstName: 'firstName',
    lastName: 'lastName',
    middleName: 'middleName',
    birthDate: 'birthDate',
    avatar: 'avatar',
    passportPhoto: 'passportPhoto',
    passportSeries: 'passportSeries',
    passportNumber: 'passportNumber',
    passportIssued: 'passportIssued',
    passportDate: 'passportDate',
    address: 'address',
    position: 'position',
    department: 'department',
    hireDate: 'hireDate',
    salary: 'salary',
    status: 'status',
    phone: 'phone',
    email: 'email',
    telegram: 'telegram',
    whatsapp: 'whatsapp',
    emergencyContact: 'emergencyContact',
    emergencyPhone: 'emergencyPhone',
    organizationId: 'organizationId',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type EmployeeScalarFieldEnum = (typeof EmployeeScalarFieldEnum)[keyof typeof EmployeeScalarFieldEnum]


  export const EmployeeScheduleScalarFieldEnum: {
    id: 'id',
    date: 'date',
    status: 'status',
    hoursWorked: 'hoursWorked',
    notes: 'notes',
    employeeId: 'employeeId',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type EmployeeScheduleScalarFieldEnum = (typeof EmployeeScheduleScalarFieldEnum)[keyof typeof EmployeeScheduleScalarFieldEnum]


  export const WildberriesSupplyScalarFieldEnum: {
    id: 'id',
    organizationId: 'organizationId',
    deliveryDate: 'deliveryDate',
    status: 'status',
    totalAmount: 'totalAmount',
    totalItems: 'totalItems',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type WildberriesSupplyScalarFieldEnum = (typeof WildberriesSupplyScalarFieldEnum)[keyof typeof WildberriesSupplyScalarFieldEnum]


  export const WildberriesSupplyCardScalarFieldEnum: {
    id: 'id',
    supplyId: 'supplyId',
    nmId: 'nmId',
    vendorCode: 'vendorCode',
    title: 'title',
    brand: 'brand',
    price: 'price',
    discountedPrice: 'discountedPrice',
    quantity: 'quantity',
    selectedQuantity: 'selectedQuantity',
    selectedMarket: 'selectedMarket',
    selectedPlace: 'selectedPlace',
    sellerName: 'sellerName',
    sellerPhone: 'sellerPhone',
    deliveryDate: 'deliveryDate',
    mediaFiles: 'mediaFiles',
    selectedServices: 'selectedServices',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type WildberriesSupplyCardScalarFieldEnum = (typeof WildberriesSupplyCardScalarFieldEnum)[keyof typeof WildberriesSupplyCardScalarFieldEnum]


  export const LogisticsScalarFieldEnum: {
    id: 'id',
    fromLocation: 'fromLocation',
    toLocation: 'toLocation',
    priceUnder1m3: 'priceUnder1m3',
    priceOver1m3: 'priceOver1m3',
    description: 'description',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    organizationId: 'organizationId'
  };

  export type LogisticsScalarFieldEnum = (typeof LogisticsScalarFieldEnum)[keyof typeof LogisticsScalarFieldEnum]


  export const SupplyOrderScalarFieldEnum: {
    id: 'id',
    partnerId: 'partnerId',
    deliveryDate: 'deliveryDate',
    status: 'status',
    totalAmount: 'totalAmount',
    totalItems: 'totalItems',
    fulfillmentCenterId: 'fulfillmentCenterId',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    organizationId: 'organizationId'
  };

  export type SupplyOrderScalarFieldEnum = (typeof SupplyOrderScalarFieldEnum)[keyof typeof SupplyOrderScalarFieldEnum]


  export const SupplyOrderItemScalarFieldEnum: {
    id: 'id',
    supplyOrderId: 'supplyOrderId',
    productId: 'productId',
    quantity: 'quantity',
    price: 'price',
    totalPrice: 'totalPrice',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type SupplyOrderItemScalarFieldEnum = (typeof SupplyOrderItemScalarFieldEnum)[keyof typeof SupplyOrderItemScalarFieldEnum]


  export const SupplySupplierScalarFieldEnum: {
    id: 'id',
    name: 'name',
    contactName: 'contactName',
    phone: 'phone',
    market: 'market',
    address: 'address',
    place: 'place',
    telegram: 'telegram',
    organizationId: 'organizationId',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type SupplySupplierScalarFieldEnum = (typeof SupplySupplierScalarFieldEnum)[keyof typeof SupplySupplierScalarFieldEnum]


  export const SortOrder: {
    asc: 'asc',
    desc: 'desc'
  };

  export type SortOrder = (typeof SortOrder)[keyof typeof SortOrder]


  export const NullableJsonNullValueInput: {
    DbNull: typeof DbNull,
    JsonNull: typeof JsonNull
  };

  export type NullableJsonNullValueInput = (typeof NullableJsonNullValueInput)[keyof typeof NullableJsonNullValueInput]


  export const JsonNullValueInput: {
    JsonNull: typeof JsonNull
  };

  export type JsonNullValueInput = (typeof JsonNullValueInput)[keyof typeof JsonNullValueInput]


  export const QueryMode: {
    default: 'default',
    insensitive: 'insensitive'
  };

  export type QueryMode = (typeof QueryMode)[keyof typeof QueryMode]


  export const NullsOrder: {
    first: 'first',
    last: 'last'
  };

  export type NullsOrder = (typeof NullsOrder)[keyof typeof NullsOrder]


  export const JsonNullValueFilter: {
    DbNull: typeof DbNull,
    JsonNull: typeof JsonNull,
    AnyNull: typeof AnyNull
  };

  export type JsonNullValueFilter = (typeof JsonNullValueFilter)[keyof typeof JsonNullValueFilter]


  /**
   * Field references
   */


  /**
   * Reference to a field of type 'String'
   */
  export type StringFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'String'>
    


  /**
   * Reference to a field of type 'String[]'
   */
  export type ListStringFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'String[]'>
    


  /**
   * Reference to a field of type 'DateTime'
   */
  export type DateTimeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DateTime'>
    


  /**
   * Reference to a field of type 'DateTime[]'
   */
  export type ListDateTimeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DateTime[]'>
    


  /**
   * Reference to a field of type 'Boolean'
   */
  export type BooleanFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Boolean'>
    


  /**
   * Reference to a field of type 'Int'
   */
  export type IntFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Int'>
    


  /**
   * Reference to a field of type 'Int[]'
   */
  export type ListIntFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Int[]'>
    


  /**
   * Reference to a field of type 'OrganizationType'
   */
  export type EnumOrganizationTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'OrganizationType'>
    


  /**
   * Reference to a field of type 'OrganizationType[]'
   */
  export type ListEnumOrganizationTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'OrganizationType[]'>
    


  /**
   * Reference to a field of type 'Json'
   */
  export type JsonFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Json'>
    


  /**
   * Reference to a field of type 'QueryMode'
   */
  export type EnumQueryModeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'QueryMode'>
    


  /**
   * Reference to a field of type 'BigInt'
   */
  export type BigIntFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'BigInt'>
    


  /**
   * Reference to a field of type 'BigInt[]'
   */
  export type ListBigIntFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'BigInt[]'>
    


  /**
   * Reference to a field of type 'MarketplaceType'
   */
  export type EnumMarketplaceTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'MarketplaceType'>
    


  /**
   * Reference to a field of type 'MarketplaceType[]'
   */
  export type ListEnumMarketplaceTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'MarketplaceType[]'>
    


  /**
   * Reference to a field of type 'CounterpartyRequestStatus'
   */
  export type EnumCounterpartyRequestStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'CounterpartyRequestStatus'>
    


  /**
   * Reference to a field of type 'CounterpartyRequestStatus[]'
   */
  export type ListEnumCounterpartyRequestStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'CounterpartyRequestStatus[]'>
    


  /**
   * Reference to a field of type 'MessageType'
   */
  export type EnumMessageTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'MessageType'>
    


  /**
   * Reference to a field of type 'MessageType[]'
   */
  export type ListEnumMessageTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'MessageType[]'>
    


  /**
   * Reference to a field of type 'Decimal'
   */
  export type DecimalFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Decimal'>
    


  /**
   * Reference to a field of type 'Decimal[]'
   */
  export type ListDecimalFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Decimal[]'>
    


  /**
   * Reference to a field of type 'Float'
   */
  export type FloatFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Float'>
    


  /**
   * Reference to a field of type 'Float[]'
   */
  export type ListFloatFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Float[]'>
    


  /**
   * Reference to a field of type 'EmployeeStatus'
   */
  export type EnumEmployeeStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'EmployeeStatus'>
    


  /**
   * Reference to a field of type 'EmployeeStatus[]'
   */
  export type ListEnumEmployeeStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'EmployeeStatus[]'>
    


  /**
   * Reference to a field of type 'ScheduleStatus'
   */
  export type EnumScheduleStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ScheduleStatus'>
    


  /**
   * Reference to a field of type 'ScheduleStatus[]'
   */
  export type ListEnumScheduleStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ScheduleStatus[]'>
    


  /**
   * Reference to a field of type 'WildberriesSupplyStatus'
   */
  export type EnumWildberriesSupplyStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'WildberriesSupplyStatus'>
    


  /**
   * Reference to a field of type 'WildberriesSupplyStatus[]'
   */
  export type ListEnumWildberriesSupplyStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'WildberriesSupplyStatus[]'>
    


  /**
   * Reference to a field of type 'SupplyOrderStatus'
   */
  export type EnumSupplyOrderStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'SupplyOrderStatus'>
    


  /**
   * Reference to a field of type 'SupplyOrderStatus[]'
   */
  export type ListEnumSupplyOrderStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'SupplyOrderStatus[]'>
    
  /**
   * Deep Input Types
   */


  export type UserWhereInput = {
    AND?: UserWhereInput | UserWhereInput[]
    OR?: UserWhereInput[]
    NOT?: UserWhereInput | UserWhereInput[]
    id?: StringFilter<"User"> | string
    phone?: StringFilter<"User"> | string
    avatar?: StringNullableFilter<"User"> | string | null
    managerName?: StringNullableFilter<"User"> | string | null
    createdAt?: DateTimeFilter<"User"> | Date | string
    updatedAt?: DateTimeFilter<"User"> | Date | string
    organizationId?: StringNullableFilter<"User"> | string | null
    sentMessages?: MessageListRelationFilter
    smsCodes?: SmsCodeListRelationFilter
    organization?: XOR<OrganizationNullableScalarRelationFilter, OrganizationWhereInput> | null
  }

  export type UserOrderByWithRelationInput = {
    id?: SortOrder
    phone?: SortOrder
    avatar?: SortOrderInput | SortOrder
    managerName?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    organizationId?: SortOrderInput | SortOrder
    sentMessages?: MessageOrderByRelationAggregateInput
    smsCodes?: SmsCodeOrderByRelationAggregateInput
    organization?: OrganizationOrderByWithRelationInput
  }

  export type UserWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    phone?: string
    AND?: UserWhereInput | UserWhereInput[]
    OR?: UserWhereInput[]
    NOT?: UserWhereInput | UserWhereInput[]
    avatar?: StringNullableFilter<"User"> | string | null
    managerName?: StringNullableFilter<"User"> | string | null
    createdAt?: DateTimeFilter<"User"> | Date | string
    updatedAt?: DateTimeFilter<"User"> | Date | string
    organizationId?: StringNullableFilter<"User"> | string | null
    sentMessages?: MessageListRelationFilter
    smsCodes?: SmsCodeListRelationFilter
    organization?: XOR<OrganizationNullableScalarRelationFilter, OrganizationWhereInput> | null
  }, "id" | "phone">

  export type UserOrderByWithAggregationInput = {
    id?: SortOrder
    phone?: SortOrder
    avatar?: SortOrderInput | SortOrder
    managerName?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    organizationId?: SortOrderInput | SortOrder
    _count?: UserCountOrderByAggregateInput
    _max?: UserMaxOrderByAggregateInput
    _min?: UserMinOrderByAggregateInput
  }

  export type UserScalarWhereWithAggregatesInput = {
    AND?: UserScalarWhereWithAggregatesInput | UserScalarWhereWithAggregatesInput[]
    OR?: UserScalarWhereWithAggregatesInput[]
    NOT?: UserScalarWhereWithAggregatesInput | UserScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"User"> | string
    phone?: StringWithAggregatesFilter<"User"> | string
    avatar?: StringNullableWithAggregatesFilter<"User"> | string | null
    managerName?: StringNullableWithAggregatesFilter<"User"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"User"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"User"> | Date | string
    organizationId?: StringNullableWithAggregatesFilter<"User"> | string | null
  }

  export type AdminWhereInput = {
    AND?: AdminWhereInput | AdminWhereInput[]
    OR?: AdminWhereInput[]
    NOT?: AdminWhereInput | AdminWhereInput[]
    id?: StringFilter<"Admin"> | string
    username?: StringFilter<"Admin"> | string
    password?: StringFilter<"Admin"> | string
    email?: StringNullableFilter<"Admin"> | string | null
    isActive?: BoolFilter<"Admin"> | boolean
    lastLogin?: DateTimeNullableFilter<"Admin"> | Date | string | null
    createdAt?: DateTimeFilter<"Admin"> | Date | string
    updatedAt?: DateTimeFilter<"Admin"> | Date | string
  }

  export type AdminOrderByWithRelationInput = {
    id?: SortOrder
    username?: SortOrder
    password?: SortOrder
    email?: SortOrderInput | SortOrder
    isActive?: SortOrder
    lastLogin?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AdminWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    username?: string
    email?: string
    AND?: AdminWhereInput | AdminWhereInput[]
    OR?: AdminWhereInput[]
    NOT?: AdminWhereInput | AdminWhereInput[]
    password?: StringFilter<"Admin"> | string
    isActive?: BoolFilter<"Admin"> | boolean
    lastLogin?: DateTimeNullableFilter<"Admin"> | Date | string | null
    createdAt?: DateTimeFilter<"Admin"> | Date | string
    updatedAt?: DateTimeFilter<"Admin"> | Date | string
  }, "id" | "username" | "email">

  export type AdminOrderByWithAggregationInput = {
    id?: SortOrder
    username?: SortOrder
    password?: SortOrder
    email?: SortOrderInput | SortOrder
    isActive?: SortOrder
    lastLogin?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: AdminCountOrderByAggregateInput
    _max?: AdminMaxOrderByAggregateInput
    _min?: AdminMinOrderByAggregateInput
  }

  export type AdminScalarWhereWithAggregatesInput = {
    AND?: AdminScalarWhereWithAggregatesInput | AdminScalarWhereWithAggregatesInput[]
    OR?: AdminScalarWhereWithAggregatesInput[]
    NOT?: AdminScalarWhereWithAggregatesInput | AdminScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"Admin"> | string
    username?: StringWithAggregatesFilter<"Admin"> | string
    password?: StringWithAggregatesFilter<"Admin"> | string
    email?: StringNullableWithAggregatesFilter<"Admin"> | string | null
    isActive?: BoolWithAggregatesFilter<"Admin"> | boolean
    lastLogin?: DateTimeNullableWithAggregatesFilter<"Admin"> | Date | string | null
    createdAt?: DateTimeWithAggregatesFilter<"Admin"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"Admin"> | Date | string
  }

  export type SmsCodeWhereInput = {
    AND?: SmsCodeWhereInput | SmsCodeWhereInput[]
    OR?: SmsCodeWhereInput[]
    NOT?: SmsCodeWhereInput | SmsCodeWhereInput[]
    id?: StringFilter<"SmsCode"> | string
    code?: StringFilter<"SmsCode"> | string
    phone?: StringFilter<"SmsCode"> | string
    expiresAt?: DateTimeFilter<"SmsCode"> | Date | string
    isUsed?: BoolFilter<"SmsCode"> | boolean
    attempts?: IntFilter<"SmsCode"> | number
    maxAttempts?: IntFilter<"SmsCode"> | number
    createdAt?: DateTimeFilter<"SmsCode"> | Date | string
    userId?: StringNullableFilter<"SmsCode"> | string | null
    user?: XOR<UserNullableScalarRelationFilter, UserWhereInput> | null
  }

  export type SmsCodeOrderByWithRelationInput = {
    id?: SortOrder
    code?: SortOrder
    phone?: SortOrder
    expiresAt?: SortOrder
    isUsed?: SortOrder
    attempts?: SortOrder
    maxAttempts?: SortOrder
    createdAt?: SortOrder
    userId?: SortOrderInput | SortOrder
    user?: UserOrderByWithRelationInput
  }

  export type SmsCodeWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: SmsCodeWhereInput | SmsCodeWhereInput[]
    OR?: SmsCodeWhereInput[]
    NOT?: SmsCodeWhereInput | SmsCodeWhereInput[]
    code?: StringFilter<"SmsCode"> | string
    phone?: StringFilter<"SmsCode"> | string
    expiresAt?: DateTimeFilter<"SmsCode"> | Date | string
    isUsed?: BoolFilter<"SmsCode"> | boolean
    attempts?: IntFilter<"SmsCode"> | number
    maxAttempts?: IntFilter<"SmsCode"> | number
    createdAt?: DateTimeFilter<"SmsCode"> | Date | string
    userId?: StringNullableFilter<"SmsCode"> | string | null
    user?: XOR<UserNullableScalarRelationFilter, UserWhereInput> | null
  }, "id">

  export type SmsCodeOrderByWithAggregationInput = {
    id?: SortOrder
    code?: SortOrder
    phone?: SortOrder
    expiresAt?: SortOrder
    isUsed?: SortOrder
    attempts?: SortOrder
    maxAttempts?: SortOrder
    createdAt?: SortOrder
    userId?: SortOrderInput | SortOrder
    _count?: SmsCodeCountOrderByAggregateInput
    _avg?: SmsCodeAvgOrderByAggregateInput
    _max?: SmsCodeMaxOrderByAggregateInput
    _min?: SmsCodeMinOrderByAggregateInput
    _sum?: SmsCodeSumOrderByAggregateInput
  }

  export type SmsCodeScalarWhereWithAggregatesInput = {
    AND?: SmsCodeScalarWhereWithAggregatesInput | SmsCodeScalarWhereWithAggregatesInput[]
    OR?: SmsCodeScalarWhereWithAggregatesInput[]
    NOT?: SmsCodeScalarWhereWithAggregatesInput | SmsCodeScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"SmsCode"> | string
    code?: StringWithAggregatesFilter<"SmsCode"> | string
    phone?: StringWithAggregatesFilter<"SmsCode"> | string
    expiresAt?: DateTimeWithAggregatesFilter<"SmsCode"> | Date | string
    isUsed?: BoolWithAggregatesFilter<"SmsCode"> | boolean
    attempts?: IntWithAggregatesFilter<"SmsCode"> | number
    maxAttempts?: IntWithAggregatesFilter<"SmsCode"> | number
    createdAt?: DateTimeWithAggregatesFilter<"SmsCode"> | Date | string
    userId?: StringNullableWithAggregatesFilter<"SmsCode"> | string | null
  }

  export type OrganizationWhereInput = {
    AND?: OrganizationWhereInput | OrganizationWhereInput[]
    OR?: OrganizationWhereInput[]
    NOT?: OrganizationWhereInput | OrganizationWhereInput[]
    id?: StringFilter<"Organization"> | string
    inn?: StringFilter<"Organization"> | string
    kpp?: StringNullableFilter<"Organization"> | string | null
    name?: StringNullableFilter<"Organization"> | string | null
    fullName?: StringNullableFilter<"Organization"> | string | null
    ogrn?: StringNullableFilter<"Organization"> | string | null
    ogrnDate?: DateTimeNullableFilter<"Organization"> | Date | string | null
    type?: EnumOrganizationTypeFilter<"Organization"> | $Enums.OrganizationType
    createdAt?: DateTimeFilter<"Organization"> | Date | string
    updatedAt?: DateTimeFilter<"Organization"> | Date | string
    address?: StringNullableFilter<"Organization"> | string | null
    addressFull?: StringNullableFilter<"Organization"> | string | null
    status?: StringNullableFilter<"Organization"> | string | null
    actualityDate?: DateTimeNullableFilter<"Organization"> | Date | string | null
    registrationDate?: DateTimeNullableFilter<"Organization"> | Date | string | null
    liquidationDate?: DateTimeNullableFilter<"Organization"> | Date | string | null
    managementName?: StringNullableFilter<"Organization"> | string | null
    managementPost?: StringNullableFilter<"Organization"> | string | null
    opfCode?: StringNullableFilter<"Organization"> | string | null
    opfFull?: StringNullableFilter<"Organization"> | string | null
    opfShort?: StringNullableFilter<"Organization"> | string | null
    okato?: StringNullableFilter<"Organization"> | string | null
    oktmo?: StringNullableFilter<"Organization"> | string | null
    okpo?: StringNullableFilter<"Organization"> | string | null
    okved?: StringNullableFilter<"Organization"> | string | null
    phones?: JsonNullableFilter<"Organization">
    emails?: JsonNullableFilter<"Organization">
    employeeCount?: IntNullableFilter<"Organization"> | number | null
    revenue?: BigIntNullableFilter<"Organization"> | bigint | number | null
    taxSystem?: StringNullableFilter<"Organization"> | string | null
    dadataData?: JsonNullableFilter<"Organization">
    apiKeys?: ApiKeyListRelationFilter
    carts?: XOR<CartNullableScalarRelationFilter, CartWhereInput> | null
    counterpartyOf?: CounterpartyListRelationFilter
    organizationCounterparties?: CounterpartyListRelationFilter
    receivedRequests?: CounterpartyRequestListRelationFilter
    sentRequests?: CounterpartyRequestListRelationFilter
    employees?: EmployeeListRelationFilter
    favorites?: FavoritesListRelationFilter
    receivedMessages?: MessageListRelationFilter
    sentMessages?: MessageListRelationFilter
    products?: ProductListRelationFilter
    services?: ServiceListRelationFilter
    supplies?: SupplyListRelationFilter
    users?: UserListRelationFilter
    logistics?: LogisticsListRelationFilter
    supplyOrders?: SupplyOrderListRelationFilter
    partnerSupplyOrders?: SupplyOrderListRelationFilter
    fulfillmentSupplyOrders?: SupplyOrderListRelationFilter
    wildberriesSupplies?: WildberriesSupplyListRelationFilter
    supplySuppliers?: SupplySupplierListRelationFilter
  }

  export type OrganizationOrderByWithRelationInput = {
    id?: SortOrder
    inn?: SortOrder
    kpp?: SortOrderInput | SortOrder
    name?: SortOrderInput | SortOrder
    fullName?: SortOrderInput | SortOrder
    ogrn?: SortOrderInput | SortOrder
    ogrnDate?: SortOrderInput | SortOrder
    type?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    address?: SortOrderInput | SortOrder
    addressFull?: SortOrderInput | SortOrder
    status?: SortOrderInput | SortOrder
    actualityDate?: SortOrderInput | SortOrder
    registrationDate?: SortOrderInput | SortOrder
    liquidationDate?: SortOrderInput | SortOrder
    managementName?: SortOrderInput | SortOrder
    managementPost?: SortOrderInput | SortOrder
    opfCode?: SortOrderInput | SortOrder
    opfFull?: SortOrderInput | SortOrder
    opfShort?: SortOrderInput | SortOrder
    okato?: SortOrderInput | SortOrder
    oktmo?: SortOrderInput | SortOrder
    okpo?: SortOrderInput | SortOrder
    okved?: SortOrderInput | SortOrder
    phones?: SortOrderInput | SortOrder
    emails?: SortOrderInput | SortOrder
    employeeCount?: SortOrderInput | SortOrder
    revenue?: SortOrderInput | SortOrder
    taxSystem?: SortOrderInput | SortOrder
    dadataData?: SortOrderInput | SortOrder
    apiKeys?: ApiKeyOrderByRelationAggregateInput
    carts?: CartOrderByWithRelationInput
    counterpartyOf?: CounterpartyOrderByRelationAggregateInput
    organizationCounterparties?: CounterpartyOrderByRelationAggregateInput
    receivedRequests?: CounterpartyRequestOrderByRelationAggregateInput
    sentRequests?: CounterpartyRequestOrderByRelationAggregateInput
    employees?: EmployeeOrderByRelationAggregateInput
    favorites?: FavoritesOrderByRelationAggregateInput
    receivedMessages?: MessageOrderByRelationAggregateInput
    sentMessages?: MessageOrderByRelationAggregateInput
    products?: ProductOrderByRelationAggregateInput
    services?: ServiceOrderByRelationAggregateInput
    supplies?: SupplyOrderByRelationAggregateInput
    users?: UserOrderByRelationAggregateInput
    logistics?: LogisticsOrderByRelationAggregateInput
    supplyOrders?: SupplyOrderOrderByRelationAggregateInput
    partnerSupplyOrders?: SupplyOrderOrderByRelationAggregateInput
    fulfillmentSupplyOrders?: SupplyOrderOrderByRelationAggregateInput
    wildberriesSupplies?: WildberriesSupplyOrderByRelationAggregateInput
    supplySuppliers?: SupplySupplierOrderByRelationAggregateInput
  }

  export type OrganizationWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    inn?: string
    AND?: OrganizationWhereInput | OrganizationWhereInput[]
    OR?: OrganizationWhereInput[]
    NOT?: OrganizationWhereInput | OrganizationWhereInput[]
    kpp?: StringNullableFilter<"Organization"> | string | null
    name?: StringNullableFilter<"Organization"> | string | null
    fullName?: StringNullableFilter<"Organization"> | string | null
    ogrn?: StringNullableFilter<"Organization"> | string | null
    ogrnDate?: DateTimeNullableFilter<"Organization"> | Date | string | null
    type?: EnumOrganizationTypeFilter<"Organization"> | $Enums.OrganizationType
    createdAt?: DateTimeFilter<"Organization"> | Date | string
    updatedAt?: DateTimeFilter<"Organization"> | Date | string
    address?: StringNullableFilter<"Organization"> | string | null
    addressFull?: StringNullableFilter<"Organization"> | string | null
    status?: StringNullableFilter<"Organization"> | string | null
    actualityDate?: DateTimeNullableFilter<"Organization"> | Date | string | null
    registrationDate?: DateTimeNullableFilter<"Organization"> | Date | string | null
    liquidationDate?: DateTimeNullableFilter<"Organization"> | Date | string | null
    managementName?: StringNullableFilter<"Organization"> | string | null
    managementPost?: StringNullableFilter<"Organization"> | string | null
    opfCode?: StringNullableFilter<"Organization"> | string | null
    opfFull?: StringNullableFilter<"Organization"> | string | null
    opfShort?: StringNullableFilter<"Organization"> | string | null
    okato?: StringNullableFilter<"Organization"> | string | null
    oktmo?: StringNullableFilter<"Organization"> | string | null
    okpo?: StringNullableFilter<"Organization"> | string | null
    okved?: StringNullableFilter<"Organization"> | string | null
    phones?: JsonNullableFilter<"Organization">
    emails?: JsonNullableFilter<"Organization">
    employeeCount?: IntNullableFilter<"Organization"> | number | null
    revenue?: BigIntNullableFilter<"Organization"> | bigint | number | null
    taxSystem?: StringNullableFilter<"Organization"> | string | null
    dadataData?: JsonNullableFilter<"Organization">
    apiKeys?: ApiKeyListRelationFilter
    carts?: XOR<CartNullableScalarRelationFilter, CartWhereInput> | null
    counterpartyOf?: CounterpartyListRelationFilter
    organizationCounterparties?: CounterpartyListRelationFilter
    receivedRequests?: CounterpartyRequestListRelationFilter
    sentRequests?: CounterpartyRequestListRelationFilter
    employees?: EmployeeListRelationFilter
    favorites?: FavoritesListRelationFilter
    receivedMessages?: MessageListRelationFilter
    sentMessages?: MessageListRelationFilter
    products?: ProductListRelationFilter
    services?: ServiceListRelationFilter
    supplies?: SupplyListRelationFilter
    users?: UserListRelationFilter
    logistics?: LogisticsListRelationFilter
    supplyOrders?: SupplyOrderListRelationFilter
    partnerSupplyOrders?: SupplyOrderListRelationFilter
    fulfillmentSupplyOrders?: SupplyOrderListRelationFilter
    wildberriesSupplies?: WildberriesSupplyListRelationFilter
    supplySuppliers?: SupplySupplierListRelationFilter
  }, "id" | "inn">

  export type OrganizationOrderByWithAggregationInput = {
    id?: SortOrder
    inn?: SortOrder
    kpp?: SortOrderInput | SortOrder
    name?: SortOrderInput | SortOrder
    fullName?: SortOrderInput | SortOrder
    ogrn?: SortOrderInput | SortOrder
    ogrnDate?: SortOrderInput | SortOrder
    type?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    address?: SortOrderInput | SortOrder
    addressFull?: SortOrderInput | SortOrder
    status?: SortOrderInput | SortOrder
    actualityDate?: SortOrderInput | SortOrder
    registrationDate?: SortOrderInput | SortOrder
    liquidationDate?: SortOrderInput | SortOrder
    managementName?: SortOrderInput | SortOrder
    managementPost?: SortOrderInput | SortOrder
    opfCode?: SortOrderInput | SortOrder
    opfFull?: SortOrderInput | SortOrder
    opfShort?: SortOrderInput | SortOrder
    okato?: SortOrderInput | SortOrder
    oktmo?: SortOrderInput | SortOrder
    okpo?: SortOrderInput | SortOrder
    okved?: SortOrderInput | SortOrder
    phones?: SortOrderInput | SortOrder
    emails?: SortOrderInput | SortOrder
    employeeCount?: SortOrderInput | SortOrder
    revenue?: SortOrderInput | SortOrder
    taxSystem?: SortOrderInput | SortOrder
    dadataData?: SortOrderInput | SortOrder
    _count?: OrganizationCountOrderByAggregateInput
    _avg?: OrganizationAvgOrderByAggregateInput
    _max?: OrganizationMaxOrderByAggregateInput
    _min?: OrganizationMinOrderByAggregateInput
    _sum?: OrganizationSumOrderByAggregateInput
  }

  export type OrganizationScalarWhereWithAggregatesInput = {
    AND?: OrganizationScalarWhereWithAggregatesInput | OrganizationScalarWhereWithAggregatesInput[]
    OR?: OrganizationScalarWhereWithAggregatesInput[]
    NOT?: OrganizationScalarWhereWithAggregatesInput | OrganizationScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"Organization"> | string
    inn?: StringWithAggregatesFilter<"Organization"> | string
    kpp?: StringNullableWithAggregatesFilter<"Organization"> | string | null
    name?: StringNullableWithAggregatesFilter<"Organization"> | string | null
    fullName?: StringNullableWithAggregatesFilter<"Organization"> | string | null
    ogrn?: StringNullableWithAggregatesFilter<"Organization"> | string | null
    ogrnDate?: DateTimeNullableWithAggregatesFilter<"Organization"> | Date | string | null
    type?: EnumOrganizationTypeWithAggregatesFilter<"Organization"> | $Enums.OrganizationType
    createdAt?: DateTimeWithAggregatesFilter<"Organization"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"Organization"> | Date | string
    address?: StringNullableWithAggregatesFilter<"Organization"> | string | null
    addressFull?: StringNullableWithAggregatesFilter<"Organization"> | string | null
    status?: StringNullableWithAggregatesFilter<"Organization"> | string | null
    actualityDate?: DateTimeNullableWithAggregatesFilter<"Organization"> | Date | string | null
    registrationDate?: DateTimeNullableWithAggregatesFilter<"Organization"> | Date | string | null
    liquidationDate?: DateTimeNullableWithAggregatesFilter<"Organization"> | Date | string | null
    managementName?: StringNullableWithAggregatesFilter<"Organization"> | string | null
    managementPost?: StringNullableWithAggregatesFilter<"Organization"> | string | null
    opfCode?: StringNullableWithAggregatesFilter<"Organization"> | string | null
    opfFull?: StringNullableWithAggregatesFilter<"Organization"> | string | null
    opfShort?: StringNullableWithAggregatesFilter<"Organization"> | string | null
    okato?: StringNullableWithAggregatesFilter<"Organization"> | string | null
    oktmo?: StringNullableWithAggregatesFilter<"Organization"> | string | null
    okpo?: StringNullableWithAggregatesFilter<"Organization"> | string | null
    okved?: StringNullableWithAggregatesFilter<"Organization"> | string | null
    phones?: JsonNullableWithAggregatesFilter<"Organization">
    emails?: JsonNullableWithAggregatesFilter<"Organization">
    employeeCount?: IntNullableWithAggregatesFilter<"Organization"> | number | null
    revenue?: BigIntNullableWithAggregatesFilter<"Organization"> | bigint | number | null
    taxSystem?: StringNullableWithAggregatesFilter<"Organization"> | string | null
    dadataData?: JsonNullableWithAggregatesFilter<"Organization">
  }

  export type ApiKeyWhereInput = {
    AND?: ApiKeyWhereInput | ApiKeyWhereInput[]
    OR?: ApiKeyWhereInput[]
    NOT?: ApiKeyWhereInput | ApiKeyWhereInput[]
    id?: StringFilter<"ApiKey"> | string
    marketplace?: EnumMarketplaceTypeFilter<"ApiKey"> | $Enums.MarketplaceType
    apiKey?: StringFilter<"ApiKey"> | string
    isActive?: BoolFilter<"ApiKey"> | boolean
    createdAt?: DateTimeFilter<"ApiKey"> | Date | string
    updatedAt?: DateTimeFilter<"ApiKey"> | Date | string
    validationData?: JsonNullableFilter<"ApiKey">
    organizationId?: StringFilter<"ApiKey"> | string
    organization?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
  }

  export type ApiKeyOrderByWithRelationInput = {
    id?: SortOrder
    marketplace?: SortOrder
    apiKey?: SortOrder
    isActive?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    validationData?: SortOrderInput | SortOrder
    organizationId?: SortOrder
    organization?: OrganizationOrderByWithRelationInput
  }

  export type ApiKeyWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    organizationId_marketplace?: ApiKeyOrganizationIdMarketplaceCompoundUniqueInput
    AND?: ApiKeyWhereInput | ApiKeyWhereInput[]
    OR?: ApiKeyWhereInput[]
    NOT?: ApiKeyWhereInput | ApiKeyWhereInput[]
    marketplace?: EnumMarketplaceTypeFilter<"ApiKey"> | $Enums.MarketplaceType
    apiKey?: StringFilter<"ApiKey"> | string
    isActive?: BoolFilter<"ApiKey"> | boolean
    createdAt?: DateTimeFilter<"ApiKey"> | Date | string
    updatedAt?: DateTimeFilter<"ApiKey"> | Date | string
    validationData?: JsonNullableFilter<"ApiKey">
    organizationId?: StringFilter<"ApiKey"> | string
    organization?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
  }, "id" | "organizationId_marketplace">

  export type ApiKeyOrderByWithAggregationInput = {
    id?: SortOrder
    marketplace?: SortOrder
    apiKey?: SortOrder
    isActive?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    validationData?: SortOrderInput | SortOrder
    organizationId?: SortOrder
    _count?: ApiKeyCountOrderByAggregateInput
    _max?: ApiKeyMaxOrderByAggregateInput
    _min?: ApiKeyMinOrderByAggregateInput
  }

  export type ApiKeyScalarWhereWithAggregatesInput = {
    AND?: ApiKeyScalarWhereWithAggregatesInput | ApiKeyScalarWhereWithAggregatesInput[]
    OR?: ApiKeyScalarWhereWithAggregatesInput[]
    NOT?: ApiKeyScalarWhereWithAggregatesInput | ApiKeyScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"ApiKey"> | string
    marketplace?: EnumMarketplaceTypeWithAggregatesFilter<"ApiKey"> | $Enums.MarketplaceType
    apiKey?: StringWithAggregatesFilter<"ApiKey"> | string
    isActive?: BoolWithAggregatesFilter<"ApiKey"> | boolean
    createdAt?: DateTimeWithAggregatesFilter<"ApiKey"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"ApiKey"> | Date | string
    validationData?: JsonNullableWithAggregatesFilter<"ApiKey">
    organizationId?: StringWithAggregatesFilter<"ApiKey"> | string
  }

  export type CounterpartyRequestWhereInput = {
    AND?: CounterpartyRequestWhereInput | CounterpartyRequestWhereInput[]
    OR?: CounterpartyRequestWhereInput[]
    NOT?: CounterpartyRequestWhereInput | CounterpartyRequestWhereInput[]
    id?: StringFilter<"CounterpartyRequest"> | string
    status?: EnumCounterpartyRequestStatusFilter<"CounterpartyRequest"> | $Enums.CounterpartyRequestStatus
    createdAt?: DateTimeFilter<"CounterpartyRequest"> | Date | string
    updatedAt?: DateTimeFilter<"CounterpartyRequest"> | Date | string
    senderId?: StringFilter<"CounterpartyRequest"> | string
    receiverId?: StringFilter<"CounterpartyRequest"> | string
    message?: StringNullableFilter<"CounterpartyRequest"> | string | null
    receiver?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
    sender?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
  }

  export type CounterpartyRequestOrderByWithRelationInput = {
    id?: SortOrder
    status?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    senderId?: SortOrder
    receiverId?: SortOrder
    message?: SortOrderInput | SortOrder
    receiver?: OrganizationOrderByWithRelationInput
    sender?: OrganizationOrderByWithRelationInput
  }

  export type CounterpartyRequestWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    senderId_receiverId?: CounterpartyRequestSenderIdReceiverIdCompoundUniqueInput
    AND?: CounterpartyRequestWhereInput | CounterpartyRequestWhereInput[]
    OR?: CounterpartyRequestWhereInput[]
    NOT?: CounterpartyRequestWhereInput | CounterpartyRequestWhereInput[]
    status?: EnumCounterpartyRequestStatusFilter<"CounterpartyRequest"> | $Enums.CounterpartyRequestStatus
    createdAt?: DateTimeFilter<"CounterpartyRequest"> | Date | string
    updatedAt?: DateTimeFilter<"CounterpartyRequest"> | Date | string
    senderId?: StringFilter<"CounterpartyRequest"> | string
    receiverId?: StringFilter<"CounterpartyRequest"> | string
    message?: StringNullableFilter<"CounterpartyRequest"> | string | null
    receiver?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
    sender?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
  }, "id" | "senderId_receiverId">

  export type CounterpartyRequestOrderByWithAggregationInput = {
    id?: SortOrder
    status?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    senderId?: SortOrder
    receiverId?: SortOrder
    message?: SortOrderInput | SortOrder
    _count?: CounterpartyRequestCountOrderByAggregateInput
    _max?: CounterpartyRequestMaxOrderByAggregateInput
    _min?: CounterpartyRequestMinOrderByAggregateInput
  }

  export type CounterpartyRequestScalarWhereWithAggregatesInput = {
    AND?: CounterpartyRequestScalarWhereWithAggregatesInput | CounterpartyRequestScalarWhereWithAggregatesInput[]
    OR?: CounterpartyRequestScalarWhereWithAggregatesInput[]
    NOT?: CounterpartyRequestScalarWhereWithAggregatesInput | CounterpartyRequestScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"CounterpartyRequest"> | string
    status?: EnumCounterpartyRequestStatusWithAggregatesFilter<"CounterpartyRequest"> | $Enums.CounterpartyRequestStatus
    createdAt?: DateTimeWithAggregatesFilter<"CounterpartyRequest"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"CounterpartyRequest"> | Date | string
    senderId?: StringWithAggregatesFilter<"CounterpartyRequest"> | string
    receiverId?: StringWithAggregatesFilter<"CounterpartyRequest"> | string
    message?: StringNullableWithAggregatesFilter<"CounterpartyRequest"> | string | null
  }

  export type CounterpartyWhereInput = {
    AND?: CounterpartyWhereInput | CounterpartyWhereInput[]
    OR?: CounterpartyWhereInput[]
    NOT?: CounterpartyWhereInput | CounterpartyWhereInput[]
    id?: StringFilter<"Counterparty"> | string
    createdAt?: DateTimeFilter<"Counterparty"> | Date | string
    organizationId?: StringFilter<"Counterparty"> | string
    counterpartyId?: StringFilter<"Counterparty"> | string
    counterparty?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
    organization?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
  }

  export type CounterpartyOrderByWithRelationInput = {
    id?: SortOrder
    createdAt?: SortOrder
    organizationId?: SortOrder
    counterpartyId?: SortOrder
    counterparty?: OrganizationOrderByWithRelationInput
    organization?: OrganizationOrderByWithRelationInput
  }

  export type CounterpartyWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    organizationId_counterpartyId?: CounterpartyOrganizationIdCounterpartyIdCompoundUniqueInput
    AND?: CounterpartyWhereInput | CounterpartyWhereInput[]
    OR?: CounterpartyWhereInput[]
    NOT?: CounterpartyWhereInput | CounterpartyWhereInput[]
    createdAt?: DateTimeFilter<"Counterparty"> | Date | string
    organizationId?: StringFilter<"Counterparty"> | string
    counterpartyId?: StringFilter<"Counterparty"> | string
    counterparty?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
    organization?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
  }, "id" | "organizationId_counterpartyId">

  export type CounterpartyOrderByWithAggregationInput = {
    id?: SortOrder
    createdAt?: SortOrder
    organizationId?: SortOrder
    counterpartyId?: SortOrder
    _count?: CounterpartyCountOrderByAggregateInput
    _max?: CounterpartyMaxOrderByAggregateInput
    _min?: CounterpartyMinOrderByAggregateInput
  }

  export type CounterpartyScalarWhereWithAggregatesInput = {
    AND?: CounterpartyScalarWhereWithAggregatesInput | CounterpartyScalarWhereWithAggregatesInput[]
    OR?: CounterpartyScalarWhereWithAggregatesInput[]
    NOT?: CounterpartyScalarWhereWithAggregatesInput | CounterpartyScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"Counterparty"> | string
    createdAt?: DateTimeWithAggregatesFilter<"Counterparty"> | Date | string
    organizationId?: StringWithAggregatesFilter<"Counterparty"> | string
    counterpartyId?: StringWithAggregatesFilter<"Counterparty"> | string
  }

  export type MessageWhereInput = {
    AND?: MessageWhereInput | MessageWhereInput[]
    OR?: MessageWhereInput[]
    NOT?: MessageWhereInput | MessageWhereInput[]
    id?: StringFilter<"Message"> | string
    content?: StringNullableFilter<"Message"> | string | null
    type?: EnumMessageTypeFilter<"Message"> | $Enums.MessageType
    voiceUrl?: StringNullableFilter<"Message"> | string | null
    voiceDuration?: IntNullableFilter<"Message"> | number | null
    fileUrl?: StringNullableFilter<"Message"> | string | null
    fileName?: StringNullableFilter<"Message"> | string | null
    fileSize?: IntNullableFilter<"Message"> | number | null
    fileType?: StringNullableFilter<"Message"> | string | null
    isRead?: BoolFilter<"Message"> | boolean
    createdAt?: DateTimeFilter<"Message"> | Date | string
    updatedAt?: DateTimeFilter<"Message"> | Date | string
    senderId?: StringFilter<"Message"> | string
    senderOrganizationId?: StringFilter<"Message"> | string
    receiverOrganizationId?: StringFilter<"Message"> | string
    receiverOrganization?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
    sender?: XOR<UserScalarRelationFilter, UserWhereInput>
    senderOrganization?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
  }

  export type MessageOrderByWithRelationInput = {
    id?: SortOrder
    content?: SortOrderInput | SortOrder
    type?: SortOrder
    voiceUrl?: SortOrderInput | SortOrder
    voiceDuration?: SortOrderInput | SortOrder
    fileUrl?: SortOrderInput | SortOrder
    fileName?: SortOrderInput | SortOrder
    fileSize?: SortOrderInput | SortOrder
    fileType?: SortOrderInput | SortOrder
    isRead?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    senderId?: SortOrder
    senderOrganizationId?: SortOrder
    receiverOrganizationId?: SortOrder
    receiverOrganization?: OrganizationOrderByWithRelationInput
    sender?: UserOrderByWithRelationInput
    senderOrganization?: OrganizationOrderByWithRelationInput
  }

  export type MessageWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: MessageWhereInput | MessageWhereInput[]
    OR?: MessageWhereInput[]
    NOT?: MessageWhereInput | MessageWhereInput[]
    content?: StringNullableFilter<"Message"> | string | null
    type?: EnumMessageTypeFilter<"Message"> | $Enums.MessageType
    voiceUrl?: StringNullableFilter<"Message"> | string | null
    voiceDuration?: IntNullableFilter<"Message"> | number | null
    fileUrl?: StringNullableFilter<"Message"> | string | null
    fileName?: StringNullableFilter<"Message"> | string | null
    fileSize?: IntNullableFilter<"Message"> | number | null
    fileType?: StringNullableFilter<"Message"> | string | null
    isRead?: BoolFilter<"Message"> | boolean
    createdAt?: DateTimeFilter<"Message"> | Date | string
    updatedAt?: DateTimeFilter<"Message"> | Date | string
    senderId?: StringFilter<"Message"> | string
    senderOrganizationId?: StringFilter<"Message"> | string
    receiverOrganizationId?: StringFilter<"Message"> | string
    receiverOrganization?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
    sender?: XOR<UserScalarRelationFilter, UserWhereInput>
    senderOrganization?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
  }, "id">

  export type MessageOrderByWithAggregationInput = {
    id?: SortOrder
    content?: SortOrderInput | SortOrder
    type?: SortOrder
    voiceUrl?: SortOrderInput | SortOrder
    voiceDuration?: SortOrderInput | SortOrder
    fileUrl?: SortOrderInput | SortOrder
    fileName?: SortOrderInput | SortOrder
    fileSize?: SortOrderInput | SortOrder
    fileType?: SortOrderInput | SortOrder
    isRead?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    senderId?: SortOrder
    senderOrganizationId?: SortOrder
    receiverOrganizationId?: SortOrder
    _count?: MessageCountOrderByAggregateInput
    _avg?: MessageAvgOrderByAggregateInput
    _max?: MessageMaxOrderByAggregateInput
    _min?: MessageMinOrderByAggregateInput
    _sum?: MessageSumOrderByAggregateInput
  }

  export type MessageScalarWhereWithAggregatesInput = {
    AND?: MessageScalarWhereWithAggregatesInput | MessageScalarWhereWithAggregatesInput[]
    OR?: MessageScalarWhereWithAggregatesInput[]
    NOT?: MessageScalarWhereWithAggregatesInput | MessageScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"Message"> | string
    content?: StringNullableWithAggregatesFilter<"Message"> | string | null
    type?: EnumMessageTypeWithAggregatesFilter<"Message"> | $Enums.MessageType
    voiceUrl?: StringNullableWithAggregatesFilter<"Message"> | string | null
    voiceDuration?: IntNullableWithAggregatesFilter<"Message"> | number | null
    fileUrl?: StringNullableWithAggregatesFilter<"Message"> | string | null
    fileName?: StringNullableWithAggregatesFilter<"Message"> | string | null
    fileSize?: IntNullableWithAggregatesFilter<"Message"> | number | null
    fileType?: StringNullableWithAggregatesFilter<"Message"> | string | null
    isRead?: BoolWithAggregatesFilter<"Message"> | boolean
    createdAt?: DateTimeWithAggregatesFilter<"Message"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"Message"> | Date | string
    senderId?: StringWithAggregatesFilter<"Message"> | string
    senderOrganizationId?: StringWithAggregatesFilter<"Message"> | string
    receiverOrganizationId?: StringWithAggregatesFilter<"Message"> | string
  }

  export type ServiceWhereInput = {
    AND?: ServiceWhereInput | ServiceWhereInput[]
    OR?: ServiceWhereInput[]
    NOT?: ServiceWhereInput | ServiceWhereInput[]
    id?: StringFilter<"Service"> | string
    name?: StringFilter<"Service"> | string
    description?: StringNullableFilter<"Service"> | string | null
    price?: DecimalFilter<"Service"> | Decimal | DecimalJsLike | number | string
    imageUrl?: StringNullableFilter<"Service"> | string | null
    createdAt?: DateTimeFilter<"Service"> | Date | string
    updatedAt?: DateTimeFilter<"Service"> | Date | string
    organizationId?: StringFilter<"Service"> | string
    organization?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
  }

  export type ServiceOrderByWithRelationInput = {
    id?: SortOrder
    name?: SortOrder
    description?: SortOrderInput | SortOrder
    price?: SortOrder
    imageUrl?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    organizationId?: SortOrder
    organization?: OrganizationOrderByWithRelationInput
  }

  export type ServiceWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: ServiceWhereInput | ServiceWhereInput[]
    OR?: ServiceWhereInput[]
    NOT?: ServiceWhereInput | ServiceWhereInput[]
    name?: StringFilter<"Service"> | string
    description?: StringNullableFilter<"Service"> | string | null
    price?: DecimalFilter<"Service"> | Decimal | DecimalJsLike | number | string
    imageUrl?: StringNullableFilter<"Service"> | string | null
    createdAt?: DateTimeFilter<"Service"> | Date | string
    updatedAt?: DateTimeFilter<"Service"> | Date | string
    organizationId?: StringFilter<"Service"> | string
    organization?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
  }, "id">

  export type ServiceOrderByWithAggregationInput = {
    id?: SortOrder
    name?: SortOrder
    description?: SortOrderInput | SortOrder
    price?: SortOrder
    imageUrl?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    organizationId?: SortOrder
    _count?: ServiceCountOrderByAggregateInput
    _avg?: ServiceAvgOrderByAggregateInput
    _max?: ServiceMaxOrderByAggregateInput
    _min?: ServiceMinOrderByAggregateInput
    _sum?: ServiceSumOrderByAggregateInput
  }

  export type ServiceScalarWhereWithAggregatesInput = {
    AND?: ServiceScalarWhereWithAggregatesInput | ServiceScalarWhereWithAggregatesInput[]
    OR?: ServiceScalarWhereWithAggregatesInput[]
    NOT?: ServiceScalarWhereWithAggregatesInput | ServiceScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"Service"> | string
    name?: StringWithAggregatesFilter<"Service"> | string
    description?: StringNullableWithAggregatesFilter<"Service"> | string | null
    price?: DecimalWithAggregatesFilter<"Service"> | Decimal | DecimalJsLike | number | string
    imageUrl?: StringNullableWithAggregatesFilter<"Service"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"Service"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"Service"> | Date | string
    organizationId?: StringWithAggregatesFilter<"Service"> | string
  }

  export type SupplyWhereInput = {
    AND?: SupplyWhereInput | SupplyWhereInput[]
    OR?: SupplyWhereInput[]
    NOT?: SupplyWhereInput | SupplyWhereInput[]
    id?: StringFilter<"Supply"> | string
    name?: StringFilter<"Supply"> | string
    description?: StringNullableFilter<"Supply"> | string | null
    price?: DecimalFilter<"Supply"> | Decimal | DecimalJsLike | number | string
    quantity?: IntFilter<"Supply"> | number
    unit?: StringFilter<"Supply"> | string
    category?: StringFilter<"Supply"> | string
    status?: StringFilter<"Supply"> | string
    date?: DateTimeFilter<"Supply"> | Date | string
    supplier?: StringFilter<"Supply"> | string
    minStock?: IntFilter<"Supply"> | number
    currentStock?: IntFilter<"Supply"> | number
    imageUrl?: StringNullableFilter<"Supply"> | string | null
    createdAt?: DateTimeFilter<"Supply"> | Date | string
    updatedAt?: DateTimeFilter<"Supply"> | Date | string
    organizationId?: StringFilter<"Supply"> | string
    organization?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
  }

  export type SupplyOrderByWithRelationInput = {
    id?: SortOrder
    name?: SortOrder
    description?: SortOrderInput | SortOrder
    price?: SortOrder
    quantity?: SortOrder
    unit?: SortOrder
    category?: SortOrder
    status?: SortOrder
    date?: SortOrder
    supplier?: SortOrder
    minStock?: SortOrder
    currentStock?: SortOrder
    imageUrl?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    organizationId?: SortOrder
    organization?: OrganizationOrderByWithRelationInput
  }

  export type SupplyWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: SupplyWhereInput | SupplyWhereInput[]
    OR?: SupplyWhereInput[]
    NOT?: SupplyWhereInput | SupplyWhereInput[]
    name?: StringFilter<"Supply"> | string
    description?: StringNullableFilter<"Supply"> | string | null
    price?: DecimalFilter<"Supply"> | Decimal | DecimalJsLike | number | string
    quantity?: IntFilter<"Supply"> | number
    unit?: StringFilter<"Supply"> | string
    category?: StringFilter<"Supply"> | string
    status?: StringFilter<"Supply"> | string
    date?: DateTimeFilter<"Supply"> | Date | string
    supplier?: StringFilter<"Supply"> | string
    minStock?: IntFilter<"Supply"> | number
    currentStock?: IntFilter<"Supply"> | number
    imageUrl?: StringNullableFilter<"Supply"> | string | null
    createdAt?: DateTimeFilter<"Supply"> | Date | string
    updatedAt?: DateTimeFilter<"Supply"> | Date | string
    organizationId?: StringFilter<"Supply"> | string
    organization?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
  }, "id">

  export type SupplyOrderByWithAggregationInput = {
    id?: SortOrder
    name?: SortOrder
    description?: SortOrderInput | SortOrder
    price?: SortOrder
    quantity?: SortOrder
    unit?: SortOrder
    category?: SortOrder
    status?: SortOrder
    date?: SortOrder
    supplier?: SortOrder
    minStock?: SortOrder
    currentStock?: SortOrder
    imageUrl?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    organizationId?: SortOrder
    _count?: SupplyCountOrderByAggregateInput
    _avg?: SupplyAvgOrderByAggregateInput
    _max?: SupplyMaxOrderByAggregateInput
    _min?: SupplyMinOrderByAggregateInput
    _sum?: SupplySumOrderByAggregateInput
  }

  export type SupplyScalarWhereWithAggregatesInput = {
    AND?: SupplyScalarWhereWithAggregatesInput | SupplyScalarWhereWithAggregatesInput[]
    OR?: SupplyScalarWhereWithAggregatesInput[]
    NOT?: SupplyScalarWhereWithAggregatesInput | SupplyScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"Supply"> | string
    name?: StringWithAggregatesFilter<"Supply"> | string
    description?: StringNullableWithAggregatesFilter<"Supply"> | string | null
    price?: DecimalWithAggregatesFilter<"Supply"> | Decimal | DecimalJsLike | number | string
    quantity?: IntWithAggregatesFilter<"Supply"> | number
    unit?: StringWithAggregatesFilter<"Supply"> | string
    category?: StringWithAggregatesFilter<"Supply"> | string
    status?: StringWithAggregatesFilter<"Supply"> | string
    date?: DateTimeWithAggregatesFilter<"Supply"> | Date | string
    supplier?: StringWithAggregatesFilter<"Supply"> | string
    minStock?: IntWithAggregatesFilter<"Supply"> | number
    currentStock?: IntWithAggregatesFilter<"Supply"> | number
    imageUrl?: StringNullableWithAggregatesFilter<"Supply"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"Supply"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"Supply"> | Date | string
    organizationId?: StringWithAggregatesFilter<"Supply"> | string
  }

  export type CategoryWhereInput = {
    AND?: CategoryWhereInput | CategoryWhereInput[]
    OR?: CategoryWhereInput[]
    NOT?: CategoryWhereInput | CategoryWhereInput[]
    id?: StringFilter<"Category"> | string
    name?: StringFilter<"Category"> | string
    createdAt?: DateTimeFilter<"Category"> | Date | string
    updatedAt?: DateTimeFilter<"Category"> | Date | string
    products?: ProductListRelationFilter
  }

  export type CategoryOrderByWithRelationInput = {
    id?: SortOrder
    name?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    products?: ProductOrderByRelationAggregateInput
  }

  export type CategoryWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    name?: string
    AND?: CategoryWhereInput | CategoryWhereInput[]
    OR?: CategoryWhereInput[]
    NOT?: CategoryWhereInput | CategoryWhereInput[]
    createdAt?: DateTimeFilter<"Category"> | Date | string
    updatedAt?: DateTimeFilter<"Category"> | Date | string
    products?: ProductListRelationFilter
  }, "id" | "name">

  export type CategoryOrderByWithAggregationInput = {
    id?: SortOrder
    name?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: CategoryCountOrderByAggregateInput
    _max?: CategoryMaxOrderByAggregateInput
    _min?: CategoryMinOrderByAggregateInput
  }

  export type CategoryScalarWhereWithAggregatesInput = {
    AND?: CategoryScalarWhereWithAggregatesInput | CategoryScalarWhereWithAggregatesInput[]
    OR?: CategoryScalarWhereWithAggregatesInput[]
    NOT?: CategoryScalarWhereWithAggregatesInput | CategoryScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"Category"> | string
    name?: StringWithAggregatesFilter<"Category"> | string
    createdAt?: DateTimeWithAggregatesFilter<"Category"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"Category"> | Date | string
  }

  export type ProductWhereInput = {
    AND?: ProductWhereInput | ProductWhereInput[]
    OR?: ProductWhereInput[]
    NOT?: ProductWhereInput | ProductWhereInput[]
    id?: StringFilter<"Product"> | string
    name?: StringFilter<"Product"> | string
    article?: StringFilter<"Product"> | string
    description?: StringNullableFilter<"Product"> | string | null
    price?: DecimalFilter<"Product"> | Decimal | DecimalJsLike | number | string
    quantity?: IntFilter<"Product"> | number
    categoryId?: StringNullableFilter<"Product"> | string | null
    brand?: StringNullableFilter<"Product"> | string | null
    color?: StringNullableFilter<"Product"> | string | null
    size?: StringNullableFilter<"Product"> | string | null
    weight?: DecimalNullableFilter<"Product"> | Decimal | DecimalJsLike | number | string | null
    dimensions?: StringNullableFilter<"Product"> | string | null
    material?: StringNullableFilter<"Product"> | string | null
    images?: JsonFilter<"Product">
    mainImage?: StringNullableFilter<"Product"> | string | null
    isActive?: BoolFilter<"Product"> | boolean
    createdAt?: DateTimeFilter<"Product"> | Date | string
    updatedAt?: DateTimeFilter<"Product"> | Date | string
    organizationId?: StringFilter<"Product"> | string
    cartItems?: CartItemListRelationFilter
    favorites?: FavoritesListRelationFilter
    supplyOrderItems?: SupplyOrderItemListRelationFilter
    category?: XOR<CategoryNullableScalarRelationFilter, CategoryWhereInput> | null
    organization?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
  }

  export type ProductOrderByWithRelationInput = {
    id?: SortOrder
    name?: SortOrder
    article?: SortOrder
    description?: SortOrderInput | SortOrder
    price?: SortOrder
    quantity?: SortOrder
    categoryId?: SortOrderInput | SortOrder
    brand?: SortOrderInput | SortOrder
    color?: SortOrderInput | SortOrder
    size?: SortOrderInput | SortOrder
    weight?: SortOrderInput | SortOrder
    dimensions?: SortOrderInput | SortOrder
    material?: SortOrderInput | SortOrder
    images?: SortOrder
    mainImage?: SortOrderInput | SortOrder
    isActive?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    organizationId?: SortOrder
    cartItems?: CartItemOrderByRelationAggregateInput
    favorites?: FavoritesOrderByRelationAggregateInput
    supplyOrderItems?: SupplyOrderItemOrderByRelationAggregateInput
    category?: CategoryOrderByWithRelationInput
    organization?: OrganizationOrderByWithRelationInput
  }

  export type ProductWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    organizationId_article?: ProductOrganizationIdArticleCompoundUniqueInput
    AND?: ProductWhereInput | ProductWhereInput[]
    OR?: ProductWhereInput[]
    NOT?: ProductWhereInput | ProductWhereInput[]
    name?: StringFilter<"Product"> | string
    article?: StringFilter<"Product"> | string
    description?: StringNullableFilter<"Product"> | string | null
    price?: DecimalFilter<"Product"> | Decimal | DecimalJsLike | number | string
    quantity?: IntFilter<"Product"> | number
    categoryId?: StringNullableFilter<"Product"> | string | null
    brand?: StringNullableFilter<"Product"> | string | null
    color?: StringNullableFilter<"Product"> | string | null
    size?: StringNullableFilter<"Product"> | string | null
    weight?: DecimalNullableFilter<"Product"> | Decimal | DecimalJsLike | number | string | null
    dimensions?: StringNullableFilter<"Product"> | string | null
    material?: StringNullableFilter<"Product"> | string | null
    images?: JsonFilter<"Product">
    mainImage?: StringNullableFilter<"Product"> | string | null
    isActive?: BoolFilter<"Product"> | boolean
    createdAt?: DateTimeFilter<"Product"> | Date | string
    updatedAt?: DateTimeFilter<"Product"> | Date | string
    organizationId?: StringFilter<"Product"> | string
    cartItems?: CartItemListRelationFilter
    favorites?: FavoritesListRelationFilter
    supplyOrderItems?: SupplyOrderItemListRelationFilter
    category?: XOR<CategoryNullableScalarRelationFilter, CategoryWhereInput> | null
    organization?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
  }, "id" | "organizationId_article">

  export type ProductOrderByWithAggregationInput = {
    id?: SortOrder
    name?: SortOrder
    article?: SortOrder
    description?: SortOrderInput | SortOrder
    price?: SortOrder
    quantity?: SortOrder
    categoryId?: SortOrderInput | SortOrder
    brand?: SortOrderInput | SortOrder
    color?: SortOrderInput | SortOrder
    size?: SortOrderInput | SortOrder
    weight?: SortOrderInput | SortOrder
    dimensions?: SortOrderInput | SortOrder
    material?: SortOrderInput | SortOrder
    images?: SortOrder
    mainImage?: SortOrderInput | SortOrder
    isActive?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    organizationId?: SortOrder
    _count?: ProductCountOrderByAggregateInput
    _avg?: ProductAvgOrderByAggregateInput
    _max?: ProductMaxOrderByAggregateInput
    _min?: ProductMinOrderByAggregateInput
    _sum?: ProductSumOrderByAggregateInput
  }

  export type ProductScalarWhereWithAggregatesInput = {
    AND?: ProductScalarWhereWithAggregatesInput | ProductScalarWhereWithAggregatesInput[]
    OR?: ProductScalarWhereWithAggregatesInput[]
    NOT?: ProductScalarWhereWithAggregatesInput | ProductScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"Product"> | string
    name?: StringWithAggregatesFilter<"Product"> | string
    article?: StringWithAggregatesFilter<"Product"> | string
    description?: StringNullableWithAggregatesFilter<"Product"> | string | null
    price?: DecimalWithAggregatesFilter<"Product"> | Decimal | DecimalJsLike | number | string
    quantity?: IntWithAggregatesFilter<"Product"> | number
    categoryId?: StringNullableWithAggregatesFilter<"Product"> | string | null
    brand?: StringNullableWithAggregatesFilter<"Product"> | string | null
    color?: StringNullableWithAggregatesFilter<"Product"> | string | null
    size?: StringNullableWithAggregatesFilter<"Product"> | string | null
    weight?: DecimalNullableWithAggregatesFilter<"Product"> | Decimal | DecimalJsLike | number | string | null
    dimensions?: StringNullableWithAggregatesFilter<"Product"> | string | null
    material?: StringNullableWithAggregatesFilter<"Product"> | string | null
    images?: JsonWithAggregatesFilter<"Product">
    mainImage?: StringNullableWithAggregatesFilter<"Product"> | string | null
    isActive?: BoolWithAggregatesFilter<"Product"> | boolean
    createdAt?: DateTimeWithAggregatesFilter<"Product"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"Product"> | Date | string
    organizationId?: StringWithAggregatesFilter<"Product"> | string
  }

  export type CartWhereInput = {
    AND?: CartWhereInput | CartWhereInput[]
    OR?: CartWhereInput[]
    NOT?: CartWhereInput | CartWhereInput[]
    id?: StringFilter<"Cart"> | string
    organizationId?: StringFilter<"Cart"> | string
    createdAt?: DateTimeFilter<"Cart"> | Date | string
    updatedAt?: DateTimeFilter<"Cart"> | Date | string
    items?: CartItemListRelationFilter
    organization?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
  }

  export type CartOrderByWithRelationInput = {
    id?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    items?: CartItemOrderByRelationAggregateInput
    organization?: OrganizationOrderByWithRelationInput
  }

  export type CartWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    organizationId?: string
    AND?: CartWhereInput | CartWhereInput[]
    OR?: CartWhereInput[]
    NOT?: CartWhereInput | CartWhereInput[]
    createdAt?: DateTimeFilter<"Cart"> | Date | string
    updatedAt?: DateTimeFilter<"Cart"> | Date | string
    items?: CartItemListRelationFilter
    organization?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
  }, "id" | "organizationId">

  export type CartOrderByWithAggregationInput = {
    id?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: CartCountOrderByAggregateInput
    _max?: CartMaxOrderByAggregateInput
    _min?: CartMinOrderByAggregateInput
  }

  export type CartScalarWhereWithAggregatesInput = {
    AND?: CartScalarWhereWithAggregatesInput | CartScalarWhereWithAggregatesInput[]
    OR?: CartScalarWhereWithAggregatesInput[]
    NOT?: CartScalarWhereWithAggregatesInput | CartScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"Cart"> | string
    organizationId?: StringWithAggregatesFilter<"Cart"> | string
    createdAt?: DateTimeWithAggregatesFilter<"Cart"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"Cart"> | Date | string
  }

  export type CartItemWhereInput = {
    AND?: CartItemWhereInput | CartItemWhereInput[]
    OR?: CartItemWhereInput[]
    NOT?: CartItemWhereInput | CartItemWhereInput[]
    id?: StringFilter<"CartItem"> | string
    cartId?: StringFilter<"CartItem"> | string
    productId?: StringFilter<"CartItem"> | string
    quantity?: IntFilter<"CartItem"> | number
    createdAt?: DateTimeFilter<"CartItem"> | Date | string
    updatedAt?: DateTimeFilter<"CartItem"> | Date | string
    cart?: XOR<CartScalarRelationFilter, CartWhereInput>
    product?: XOR<ProductScalarRelationFilter, ProductWhereInput>
  }

  export type CartItemOrderByWithRelationInput = {
    id?: SortOrder
    cartId?: SortOrder
    productId?: SortOrder
    quantity?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    cart?: CartOrderByWithRelationInput
    product?: ProductOrderByWithRelationInput
  }

  export type CartItemWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    cartId_productId?: CartItemCartIdProductIdCompoundUniqueInput
    AND?: CartItemWhereInput | CartItemWhereInput[]
    OR?: CartItemWhereInput[]
    NOT?: CartItemWhereInput | CartItemWhereInput[]
    cartId?: StringFilter<"CartItem"> | string
    productId?: StringFilter<"CartItem"> | string
    quantity?: IntFilter<"CartItem"> | number
    createdAt?: DateTimeFilter<"CartItem"> | Date | string
    updatedAt?: DateTimeFilter<"CartItem"> | Date | string
    cart?: XOR<CartScalarRelationFilter, CartWhereInput>
    product?: XOR<ProductScalarRelationFilter, ProductWhereInput>
  }, "id" | "cartId_productId">

  export type CartItemOrderByWithAggregationInput = {
    id?: SortOrder
    cartId?: SortOrder
    productId?: SortOrder
    quantity?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: CartItemCountOrderByAggregateInput
    _avg?: CartItemAvgOrderByAggregateInput
    _max?: CartItemMaxOrderByAggregateInput
    _min?: CartItemMinOrderByAggregateInput
    _sum?: CartItemSumOrderByAggregateInput
  }

  export type CartItemScalarWhereWithAggregatesInput = {
    AND?: CartItemScalarWhereWithAggregatesInput | CartItemScalarWhereWithAggregatesInput[]
    OR?: CartItemScalarWhereWithAggregatesInput[]
    NOT?: CartItemScalarWhereWithAggregatesInput | CartItemScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"CartItem"> | string
    cartId?: StringWithAggregatesFilter<"CartItem"> | string
    productId?: StringWithAggregatesFilter<"CartItem"> | string
    quantity?: IntWithAggregatesFilter<"CartItem"> | number
    createdAt?: DateTimeWithAggregatesFilter<"CartItem"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"CartItem"> | Date | string
  }

  export type FavoritesWhereInput = {
    AND?: FavoritesWhereInput | FavoritesWhereInput[]
    OR?: FavoritesWhereInput[]
    NOT?: FavoritesWhereInput | FavoritesWhereInput[]
    id?: StringFilter<"Favorites"> | string
    organizationId?: StringFilter<"Favorites"> | string
    productId?: StringFilter<"Favorites"> | string
    createdAt?: DateTimeFilter<"Favorites"> | Date | string
    updatedAt?: DateTimeFilter<"Favorites"> | Date | string
    organization?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
    product?: XOR<ProductScalarRelationFilter, ProductWhereInput>
  }

  export type FavoritesOrderByWithRelationInput = {
    id?: SortOrder
    organizationId?: SortOrder
    productId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    organization?: OrganizationOrderByWithRelationInput
    product?: ProductOrderByWithRelationInput
  }

  export type FavoritesWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    organizationId_productId?: FavoritesOrganizationIdProductIdCompoundUniqueInput
    AND?: FavoritesWhereInput | FavoritesWhereInput[]
    OR?: FavoritesWhereInput[]
    NOT?: FavoritesWhereInput | FavoritesWhereInput[]
    organizationId?: StringFilter<"Favorites"> | string
    productId?: StringFilter<"Favorites"> | string
    createdAt?: DateTimeFilter<"Favorites"> | Date | string
    updatedAt?: DateTimeFilter<"Favorites"> | Date | string
    organization?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
    product?: XOR<ProductScalarRelationFilter, ProductWhereInput>
  }, "id" | "organizationId_productId">

  export type FavoritesOrderByWithAggregationInput = {
    id?: SortOrder
    organizationId?: SortOrder
    productId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: FavoritesCountOrderByAggregateInput
    _max?: FavoritesMaxOrderByAggregateInput
    _min?: FavoritesMinOrderByAggregateInput
  }

  export type FavoritesScalarWhereWithAggregatesInput = {
    AND?: FavoritesScalarWhereWithAggregatesInput | FavoritesScalarWhereWithAggregatesInput[]
    OR?: FavoritesScalarWhereWithAggregatesInput[]
    NOT?: FavoritesScalarWhereWithAggregatesInput | FavoritesScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"Favorites"> | string
    organizationId?: StringWithAggregatesFilter<"Favorites"> | string
    productId?: StringWithAggregatesFilter<"Favorites"> | string
    createdAt?: DateTimeWithAggregatesFilter<"Favorites"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"Favorites"> | Date | string
  }

  export type EmployeeWhereInput = {
    AND?: EmployeeWhereInput | EmployeeWhereInput[]
    OR?: EmployeeWhereInput[]
    NOT?: EmployeeWhereInput | EmployeeWhereInput[]
    id?: StringFilter<"Employee"> | string
    firstName?: StringFilter<"Employee"> | string
    lastName?: StringFilter<"Employee"> | string
    middleName?: StringNullableFilter<"Employee"> | string | null
    birthDate?: DateTimeNullableFilter<"Employee"> | Date | string | null
    avatar?: StringNullableFilter<"Employee"> | string | null
    passportPhoto?: StringNullableFilter<"Employee"> | string | null
    passportSeries?: StringNullableFilter<"Employee"> | string | null
    passportNumber?: StringNullableFilter<"Employee"> | string | null
    passportIssued?: StringNullableFilter<"Employee"> | string | null
    passportDate?: DateTimeNullableFilter<"Employee"> | Date | string | null
    address?: StringNullableFilter<"Employee"> | string | null
    position?: StringFilter<"Employee"> | string
    department?: StringNullableFilter<"Employee"> | string | null
    hireDate?: DateTimeFilter<"Employee"> | Date | string
    salary?: FloatNullableFilter<"Employee"> | number | null
    status?: EnumEmployeeStatusFilter<"Employee"> | $Enums.EmployeeStatus
    phone?: StringFilter<"Employee"> | string
    email?: StringNullableFilter<"Employee"> | string | null
    telegram?: StringNullableFilter<"Employee"> | string | null
    whatsapp?: StringNullableFilter<"Employee"> | string | null
    emergencyContact?: StringNullableFilter<"Employee"> | string | null
    emergencyPhone?: StringNullableFilter<"Employee"> | string | null
    organizationId?: StringFilter<"Employee"> | string
    createdAt?: DateTimeFilter<"Employee"> | Date | string
    updatedAt?: DateTimeFilter<"Employee"> | Date | string
    scheduleRecords?: EmployeeScheduleListRelationFilter
    organization?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
  }

  export type EmployeeOrderByWithRelationInput = {
    id?: SortOrder
    firstName?: SortOrder
    lastName?: SortOrder
    middleName?: SortOrderInput | SortOrder
    birthDate?: SortOrderInput | SortOrder
    avatar?: SortOrderInput | SortOrder
    passportPhoto?: SortOrderInput | SortOrder
    passportSeries?: SortOrderInput | SortOrder
    passportNumber?: SortOrderInput | SortOrder
    passportIssued?: SortOrderInput | SortOrder
    passportDate?: SortOrderInput | SortOrder
    address?: SortOrderInput | SortOrder
    position?: SortOrder
    department?: SortOrderInput | SortOrder
    hireDate?: SortOrder
    salary?: SortOrderInput | SortOrder
    status?: SortOrder
    phone?: SortOrder
    email?: SortOrderInput | SortOrder
    telegram?: SortOrderInput | SortOrder
    whatsapp?: SortOrderInput | SortOrder
    emergencyContact?: SortOrderInput | SortOrder
    emergencyPhone?: SortOrderInput | SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    scheduleRecords?: EmployeeScheduleOrderByRelationAggregateInput
    organization?: OrganizationOrderByWithRelationInput
  }

  export type EmployeeWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: EmployeeWhereInput | EmployeeWhereInput[]
    OR?: EmployeeWhereInput[]
    NOT?: EmployeeWhereInput | EmployeeWhereInput[]
    firstName?: StringFilter<"Employee"> | string
    lastName?: StringFilter<"Employee"> | string
    middleName?: StringNullableFilter<"Employee"> | string | null
    birthDate?: DateTimeNullableFilter<"Employee"> | Date | string | null
    avatar?: StringNullableFilter<"Employee"> | string | null
    passportPhoto?: StringNullableFilter<"Employee"> | string | null
    passportSeries?: StringNullableFilter<"Employee"> | string | null
    passportNumber?: StringNullableFilter<"Employee"> | string | null
    passportIssued?: StringNullableFilter<"Employee"> | string | null
    passportDate?: DateTimeNullableFilter<"Employee"> | Date | string | null
    address?: StringNullableFilter<"Employee"> | string | null
    position?: StringFilter<"Employee"> | string
    department?: StringNullableFilter<"Employee"> | string | null
    hireDate?: DateTimeFilter<"Employee"> | Date | string
    salary?: FloatNullableFilter<"Employee"> | number | null
    status?: EnumEmployeeStatusFilter<"Employee"> | $Enums.EmployeeStatus
    phone?: StringFilter<"Employee"> | string
    email?: StringNullableFilter<"Employee"> | string | null
    telegram?: StringNullableFilter<"Employee"> | string | null
    whatsapp?: StringNullableFilter<"Employee"> | string | null
    emergencyContact?: StringNullableFilter<"Employee"> | string | null
    emergencyPhone?: StringNullableFilter<"Employee"> | string | null
    organizationId?: StringFilter<"Employee"> | string
    createdAt?: DateTimeFilter<"Employee"> | Date | string
    updatedAt?: DateTimeFilter<"Employee"> | Date | string
    scheduleRecords?: EmployeeScheduleListRelationFilter
    organization?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
  }, "id">

  export type EmployeeOrderByWithAggregationInput = {
    id?: SortOrder
    firstName?: SortOrder
    lastName?: SortOrder
    middleName?: SortOrderInput | SortOrder
    birthDate?: SortOrderInput | SortOrder
    avatar?: SortOrderInput | SortOrder
    passportPhoto?: SortOrderInput | SortOrder
    passportSeries?: SortOrderInput | SortOrder
    passportNumber?: SortOrderInput | SortOrder
    passportIssued?: SortOrderInput | SortOrder
    passportDate?: SortOrderInput | SortOrder
    address?: SortOrderInput | SortOrder
    position?: SortOrder
    department?: SortOrderInput | SortOrder
    hireDate?: SortOrder
    salary?: SortOrderInput | SortOrder
    status?: SortOrder
    phone?: SortOrder
    email?: SortOrderInput | SortOrder
    telegram?: SortOrderInput | SortOrder
    whatsapp?: SortOrderInput | SortOrder
    emergencyContact?: SortOrderInput | SortOrder
    emergencyPhone?: SortOrderInput | SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: EmployeeCountOrderByAggregateInput
    _avg?: EmployeeAvgOrderByAggregateInput
    _max?: EmployeeMaxOrderByAggregateInput
    _min?: EmployeeMinOrderByAggregateInput
    _sum?: EmployeeSumOrderByAggregateInput
  }

  export type EmployeeScalarWhereWithAggregatesInput = {
    AND?: EmployeeScalarWhereWithAggregatesInput | EmployeeScalarWhereWithAggregatesInput[]
    OR?: EmployeeScalarWhereWithAggregatesInput[]
    NOT?: EmployeeScalarWhereWithAggregatesInput | EmployeeScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"Employee"> | string
    firstName?: StringWithAggregatesFilter<"Employee"> | string
    lastName?: StringWithAggregatesFilter<"Employee"> | string
    middleName?: StringNullableWithAggregatesFilter<"Employee"> | string | null
    birthDate?: DateTimeNullableWithAggregatesFilter<"Employee"> | Date | string | null
    avatar?: StringNullableWithAggregatesFilter<"Employee"> | string | null
    passportPhoto?: StringNullableWithAggregatesFilter<"Employee"> | string | null
    passportSeries?: StringNullableWithAggregatesFilter<"Employee"> | string | null
    passportNumber?: StringNullableWithAggregatesFilter<"Employee"> | string | null
    passportIssued?: StringNullableWithAggregatesFilter<"Employee"> | string | null
    passportDate?: DateTimeNullableWithAggregatesFilter<"Employee"> | Date | string | null
    address?: StringNullableWithAggregatesFilter<"Employee"> | string | null
    position?: StringWithAggregatesFilter<"Employee"> | string
    department?: StringNullableWithAggregatesFilter<"Employee"> | string | null
    hireDate?: DateTimeWithAggregatesFilter<"Employee"> | Date | string
    salary?: FloatNullableWithAggregatesFilter<"Employee"> | number | null
    status?: EnumEmployeeStatusWithAggregatesFilter<"Employee"> | $Enums.EmployeeStatus
    phone?: StringWithAggregatesFilter<"Employee"> | string
    email?: StringNullableWithAggregatesFilter<"Employee"> | string | null
    telegram?: StringNullableWithAggregatesFilter<"Employee"> | string | null
    whatsapp?: StringNullableWithAggregatesFilter<"Employee"> | string | null
    emergencyContact?: StringNullableWithAggregatesFilter<"Employee"> | string | null
    emergencyPhone?: StringNullableWithAggregatesFilter<"Employee"> | string | null
    organizationId?: StringWithAggregatesFilter<"Employee"> | string
    createdAt?: DateTimeWithAggregatesFilter<"Employee"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"Employee"> | Date | string
  }

  export type EmployeeScheduleWhereInput = {
    AND?: EmployeeScheduleWhereInput | EmployeeScheduleWhereInput[]
    OR?: EmployeeScheduleWhereInput[]
    NOT?: EmployeeScheduleWhereInput | EmployeeScheduleWhereInput[]
    id?: StringFilter<"EmployeeSchedule"> | string
    date?: DateTimeFilter<"EmployeeSchedule"> | Date | string
    status?: EnumScheduleStatusFilter<"EmployeeSchedule"> | $Enums.ScheduleStatus
    hoursWorked?: FloatNullableFilter<"EmployeeSchedule"> | number | null
    notes?: StringNullableFilter<"EmployeeSchedule"> | string | null
    employeeId?: StringFilter<"EmployeeSchedule"> | string
    createdAt?: DateTimeFilter<"EmployeeSchedule"> | Date | string
    updatedAt?: DateTimeFilter<"EmployeeSchedule"> | Date | string
    employee?: XOR<EmployeeScalarRelationFilter, EmployeeWhereInput>
  }

  export type EmployeeScheduleOrderByWithRelationInput = {
    id?: SortOrder
    date?: SortOrder
    status?: SortOrder
    hoursWorked?: SortOrderInput | SortOrder
    notes?: SortOrderInput | SortOrder
    employeeId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    employee?: EmployeeOrderByWithRelationInput
  }

  export type EmployeeScheduleWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    employeeId_date?: EmployeeScheduleEmployeeIdDateCompoundUniqueInput
    AND?: EmployeeScheduleWhereInput | EmployeeScheduleWhereInput[]
    OR?: EmployeeScheduleWhereInput[]
    NOT?: EmployeeScheduleWhereInput | EmployeeScheduleWhereInput[]
    date?: DateTimeFilter<"EmployeeSchedule"> | Date | string
    status?: EnumScheduleStatusFilter<"EmployeeSchedule"> | $Enums.ScheduleStatus
    hoursWorked?: FloatNullableFilter<"EmployeeSchedule"> | number | null
    notes?: StringNullableFilter<"EmployeeSchedule"> | string | null
    employeeId?: StringFilter<"EmployeeSchedule"> | string
    createdAt?: DateTimeFilter<"EmployeeSchedule"> | Date | string
    updatedAt?: DateTimeFilter<"EmployeeSchedule"> | Date | string
    employee?: XOR<EmployeeScalarRelationFilter, EmployeeWhereInput>
  }, "id" | "employeeId_date">

  export type EmployeeScheduleOrderByWithAggregationInput = {
    id?: SortOrder
    date?: SortOrder
    status?: SortOrder
    hoursWorked?: SortOrderInput | SortOrder
    notes?: SortOrderInput | SortOrder
    employeeId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: EmployeeScheduleCountOrderByAggregateInput
    _avg?: EmployeeScheduleAvgOrderByAggregateInput
    _max?: EmployeeScheduleMaxOrderByAggregateInput
    _min?: EmployeeScheduleMinOrderByAggregateInput
    _sum?: EmployeeScheduleSumOrderByAggregateInput
  }

  export type EmployeeScheduleScalarWhereWithAggregatesInput = {
    AND?: EmployeeScheduleScalarWhereWithAggregatesInput | EmployeeScheduleScalarWhereWithAggregatesInput[]
    OR?: EmployeeScheduleScalarWhereWithAggregatesInput[]
    NOT?: EmployeeScheduleScalarWhereWithAggregatesInput | EmployeeScheduleScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"EmployeeSchedule"> | string
    date?: DateTimeWithAggregatesFilter<"EmployeeSchedule"> | Date | string
    status?: EnumScheduleStatusWithAggregatesFilter<"EmployeeSchedule"> | $Enums.ScheduleStatus
    hoursWorked?: FloatNullableWithAggregatesFilter<"EmployeeSchedule"> | number | null
    notes?: StringNullableWithAggregatesFilter<"EmployeeSchedule"> | string | null
    employeeId?: StringWithAggregatesFilter<"EmployeeSchedule"> | string
    createdAt?: DateTimeWithAggregatesFilter<"EmployeeSchedule"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"EmployeeSchedule"> | Date | string
  }

  export type WildberriesSupplyWhereInput = {
    AND?: WildberriesSupplyWhereInput | WildberriesSupplyWhereInput[]
    OR?: WildberriesSupplyWhereInput[]
    NOT?: WildberriesSupplyWhereInput | WildberriesSupplyWhereInput[]
    id?: StringFilter<"WildberriesSupply"> | string
    organizationId?: StringFilter<"WildberriesSupply"> | string
    deliveryDate?: DateTimeNullableFilter<"WildberriesSupply"> | Date | string | null
    status?: EnumWildberriesSupplyStatusFilter<"WildberriesSupply"> | $Enums.WildberriesSupplyStatus
    totalAmount?: DecimalFilter<"WildberriesSupply"> | Decimal | DecimalJsLike | number | string
    totalItems?: IntFilter<"WildberriesSupply"> | number
    createdAt?: DateTimeFilter<"WildberriesSupply"> | Date | string
    updatedAt?: DateTimeFilter<"WildberriesSupply"> | Date | string
    organization?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
    cards?: WildberriesSupplyCardListRelationFilter
  }

  export type WildberriesSupplyOrderByWithRelationInput = {
    id?: SortOrder
    organizationId?: SortOrder
    deliveryDate?: SortOrderInput | SortOrder
    status?: SortOrder
    totalAmount?: SortOrder
    totalItems?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    organization?: OrganizationOrderByWithRelationInput
    cards?: WildberriesSupplyCardOrderByRelationAggregateInput
  }

  export type WildberriesSupplyWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: WildberriesSupplyWhereInput | WildberriesSupplyWhereInput[]
    OR?: WildberriesSupplyWhereInput[]
    NOT?: WildberriesSupplyWhereInput | WildberriesSupplyWhereInput[]
    organizationId?: StringFilter<"WildberriesSupply"> | string
    deliveryDate?: DateTimeNullableFilter<"WildberriesSupply"> | Date | string | null
    status?: EnumWildberriesSupplyStatusFilter<"WildberriesSupply"> | $Enums.WildberriesSupplyStatus
    totalAmount?: DecimalFilter<"WildberriesSupply"> | Decimal | DecimalJsLike | number | string
    totalItems?: IntFilter<"WildberriesSupply"> | number
    createdAt?: DateTimeFilter<"WildberriesSupply"> | Date | string
    updatedAt?: DateTimeFilter<"WildberriesSupply"> | Date | string
    organization?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
    cards?: WildberriesSupplyCardListRelationFilter
  }, "id">

  export type WildberriesSupplyOrderByWithAggregationInput = {
    id?: SortOrder
    organizationId?: SortOrder
    deliveryDate?: SortOrderInput | SortOrder
    status?: SortOrder
    totalAmount?: SortOrder
    totalItems?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: WildberriesSupplyCountOrderByAggregateInput
    _avg?: WildberriesSupplyAvgOrderByAggregateInput
    _max?: WildberriesSupplyMaxOrderByAggregateInput
    _min?: WildberriesSupplyMinOrderByAggregateInput
    _sum?: WildberriesSupplySumOrderByAggregateInput
  }

  export type WildberriesSupplyScalarWhereWithAggregatesInput = {
    AND?: WildberriesSupplyScalarWhereWithAggregatesInput | WildberriesSupplyScalarWhereWithAggregatesInput[]
    OR?: WildberriesSupplyScalarWhereWithAggregatesInput[]
    NOT?: WildberriesSupplyScalarWhereWithAggregatesInput | WildberriesSupplyScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"WildberriesSupply"> | string
    organizationId?: StringWithAggregatesFilter<"WildberriesSupply"> | string
    deliveryDate?: DateTimeNullableWithAggregatesFilter<"WildberriesSupply"> | Date | string | null
    status?: EnumWildberriesSupplyStatusWithAggregatesFilter<"WildberriesSupply"> | $Enums.WildberriesSupplyStatus
    totalAmount?: DecimalWithAggregatesFilter<"WildberriesSupply"> | Decimal | DecimalJsLike | number | string
    totalItems?: IntWithAggregatesFilter<"WildberriesSupply"> | number
    createdAt?: DateTimeWithAggregatesFilter<"WildberriesSupply"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"WildberriesSupply"> | Date | string
  }

  export type WildberriesSupplyCardWhereInput = {
    AND?: WildberriesSupplyCardWhereInput | WildberriesSupplyCardWhereInput[]
    OR?: WildberriesSupplyCardWhereInput[]
    NOT?: WildberriesSupplyCardWhereInput | WildberriesSupplyCardWhereInput[]
    id?: StringFilter<"WildberriesSupplyCard"> | string
    supplyId?: StringFilter<"WildberriesSupplyCard"> | string
    nmId?: StringFilter<"WildberriesSupplyCard"> | string
    vendorCode?: StringFilter<"WildberriesSupplyCard"> | string
    title?: StringFilter<"WildberriesSupplyCard"> | string
    brand?: StringNullableFilter<"WildberriesSupplyCard"> | string | null
    price?: DecimalFilter<"WildberriesSupplyCard"> | Decimal | DecimalJsLike | number | string
    discountedPrice?: DecimalNullableFilter<"WildberriesSupplyCard"> | Decimal | DecimalJsLike | number | string | null
    quantity?: IntFilter<"WildberriesSupplyCard"> | number
    selectedQuantity?: IntFilter<"WildberriesSupplyCard"> | number
    selectedMarket?: StringNullableFilter<"WildberriesSupplyCard"> | string | null
    selectedPlace?: StringNullableFilter<"WildberriesSupplyCard"> | string | null
    sellerName?: StringNullableFilter<"WildberriesSupplyCard"> | string | null
    sellerPhone?: StringNullableFilter<"WildberriesSupplyCard"> | string | null
    deliveryDate?: DateTimeNullableFilter<"WildberriesSupplyCard"> | Date | string | null
    mediaFiles?: JsonFilter<"WildberriesSupplyCard">
    selectedServices?: JsonFilter<"WildberriesSupplyCard">
    createdAt?: DateTimeFilter<"WildberriesSupplyCard"> | Date | string
    updatedAt?: DateTimeFilter<"WildberriesSupplyCard"> | Date | string
    supply?: XOR<WildberriesSupplyScalarRelationFilter, WildberriesSupplyWhereInput>
  }

  export type WildberriesSupplyCardOrderByWithRelationInput = {
    id?: SortOrder
    supplyId?: SortOrder
    nmId?: SortOrder
    vendorCode?: SortOrder
    title?: SortOrder
    brand?: SortOrderInput | SortOrder
    price?: SortOrder
    discountedPrice?: SortOrderInput | SortOrder
    quantity?: SortOrder
    selectedQuantity?: SortOrder
    selectedMarket?: SortOrderInput | SortOrder
    selectedPlace?: SortOrderInput | SortOrder
    sellerName?: SortOrderInput | SortOrder
    sellerPhone?: SortOrderInput | SortOrder
    deliveryDate?: SortOrderInput | SortOrder
    mediaFiles?: SortOrder
    selectedServices?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    supply?: WildberriesSupplyOrderByWithRelationInput
  }

  export type WildberriesSupplyCardWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: WildberriesSupplyCardWhereInput | WildberriesSupplyCardWhereInput[]
    OR?: WildberriesSupplyCardWhereInput[]
    NOT?: WildberriesSupplyCardWhereInput | WildberriesSupplyCardWhereInput[]
    supplyId?: StringFilter<"WildberriesSupplyCard"> | string
    nmId?: StringFilter<"WildberriesSupplyCard"> | string
    vendorCode?: StringFilter<"WildberriesSupplyCard"> | string
    title?: StringFilter<"WildberriesSupplyCard"> | string
    brand?: StringNullableFilter<"WildberriesSupplyCard"> | string | null
    price?: DecimalFilter<"WildberriesSupplyCard"> | Decimal | DecimalJsLike | number | string
    discountedPrice?: DecimalNullableFilter<"WildberriesSupplyCard"> | Decimal | DecimalJsLike | number | string | null
    quantity?: IntFilter<"WildberriesSupplyCard"> | number
    selectedQuantity?: IntFilter<"WildberriesSupplyCard"> | number
    selectedMarket?: StringNullableFilter<"WildberriesSupplyCard"> | string | null
    selectedPlace?: StringNullableFilter<"WildberriesSupplyCard"> | string | null
    sellerName?: StringNullableFilter<"WildberriesSupplyCard"> | string | null
    sellerPhone?: StringNullableFilter<"WildberriesSupplyCard"> | string | null
    deliveryDate?: DateTimeNullableFilter<"WildberriesSupplyCard"> | Date | string | null
    mediaFiles?: JsonFilter<"WildberriesSupplyCard">
    selectedServices?: JsonFilter<"WildberriesSupplyCard">
    createdAt?: DateTimeFilter<"WildberriesSupplyCard"> | Date | string
    updatedAt?: DateTimeFilter<"WildberriesSupplyCard"> | Date | string
    supply?: XOR<WildberriesSupplyScalarRelationFilter, WildberriesSupplyWhereInput>
  }, "id">

  export type WildberriesSupplyCardOrderByWithAggregationInput = {
    id?: SortOrder
    supplyId?: SortOrder
    nmId?: SortOrder
    vendorCode?: SortOrder
    title?: SortOrder
    brand?: SortOrderInput | SortOrder
    price?: SortOrder
    discountedPrice?: SortOrderInput | SortOrder
    quantity?: SortOrder
    selectedQuantity?: SortOrder
    selectedMarket?: SortOrderInput | SortOrder
    selectedPlace?: SortOrderInput | SortOrder
    sellerName?: SortOrderInput | SortOrder
    sellerPhone?: SortOrderInput | SortOrder
    deliveryDate?: SortOrderInput | SortOrder
    mediaFiles?: SortOrder
    selectedServices?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: WildberriesSupplyCardCountOrderByAggregateInput
    _avg?: WildberriesSupplyCardAvgOrderByAggregateInput
    _max?: WildberriesSupplyCardMaxOrderByAggregateInput
    _min?: WildberriesSupplyCardMinOrderByAggregateInput
    _sum?: WildberriesSupplyCardSumOrderByAggregateInput
  }

  export type WildberriesSupplyCardScalarWhereWithAggregatesInput = {
    AND?: WildberriesSupplyCardScalarWhereWithAggregatesInput | WildberriesSupplyCardScalarWhereWithAggregatesInput[]
    OR?: WildberriesSupplyCardScalarWhereWithAggregatesInput[]
    NOT?: WildberriesSupplyCardScalarWhereWithAggregatesInput | WildberriesSupplyCardScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"WildberriesSupplyCard"> | string
    supplyId?: StringWithAggregatesFilter<"WildberriesSupplyCard"> | string
    nmId?: StringWithAggregatesFilter<"WildberriesSupplyCard"> | string
    vendorCode?: StringWithAggregatesFilter<"WildberriesSupplyCard"> | string
    title?: StringWithAggregatesFilter<"WildberriesSupplyCard"> | string
    brand?: StringNullableWithAggregatesFilter<"WildberriesSupplyCard"> | string | null
    price?: DecimalWithAggregatesFilter<"WildberriesSupplyCard"> | Decimal | DecimalJsLike | number | string
    discountedPrice?: DecimalNullableWithAggregatesFilter<"WildberriesSupplyCard"> | Decimal | DecimalJsLike | number | string | null
    quantity?: IntWithAggregatesFilter<"WildberriesSupplyCard"> | number
    selectedQuantity?: IntWithAggregatesFilter<"WildberriesSupplyCard"> | number
    selectedMarket?: StringNullableWithAggregatesFilter<"WildberriesSupplyCard"> | string | null
    selectedPlace?: StringNullableWithAggregatesFilter<"WildberriesSupplyCard"> | string | null
    sellerName?: StringNullableWithAggregatesFilter<"WildberriesSupplyCard"> | string | null
    sellerPhone?: StringNullableWithAggregatesFilter<"WildberriesSupplyCard"> | string | null
    deliveryDate?: DateTimeNullableWithAggregatesFilter<"WildberriesSupplyCard"> | Date | string | null
    mediaFiles?: JsonWithAggregatesFilter<"WildberriesSupplyCard">
    selectedServices?: JsonWithAggregatesFilter<"WildberriesSupplyCard">
    createdAt?: DateTimeWithAggregatesFilter<"WildberriesSupplyCard"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"WildberriesSupplyCard"> | Date | string
  }

  export type LogisticsWhereInput = {
    AND?: LogisticsWhereInput | LogisticsWhereInput[]
    OR?: LogisticsWhereInput[]
    NOT?: LogisticsWhereInput | LogisticsWhereInput[]
    id?: StringFilter<"Logistics"> | string
    fromLocation?: StringFilter<"Logistics"> | string
    toLocation?: StringFilter<"Logistics"> | string
    priceUnder1m3?: FloatFilter<"Logistics"> | number
    priceOver1m3?: FloatFilter<"Logistics"> | number
    description?: StringNullableFilter<"Logistics"> | string | null
    createdAt?: DateTimeFilter<"Logistics"> | Date | string
    updatedAt?: DateTimeFilter<"Logistics"> | Date | string
    organizationId?: StringFilter<"Logistics"> | string
    organization?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
  }

  export type LogisticsOrderByWithRelationInput = {
    id?: SortOrder
    fromLocation?: SortOrder
    toLocation?: SortOrder
    priceUnder1m3?: SortOrder
    priceOver1m3?: SortOrder
    description?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    organizationId?: SortOrder
    organization?: OrganizationOrderByWithRelationInput
  }

  export type LogisticsWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: LogisticsWhereInput | LogisticsWhereInput[]
    OR?: LogisticsWhereInput[]
    NOT?: LogisticsWhereInput | LogisticsWhereInput[]
    fromLocation?: StringFilter<"Logistics"> | string
    toLocation?: StringFilter<"Logistics"> | string
    priceUnder1m3?: FloatFilter<"Logistics"> | number
    priceOver1m3?: FloatFilter<"Logistics"> | number
    description?: StringNullableFilter<"Logistics"> | string | null
    createdAt?: DateTimeFilter<"Logistics"> | Date | string
    updatedAt?: DateTimeFilter<"Logistics"> | Date | string
    organizationId?: StringFilter<"Logistics"> | string
    organization?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
  }, "id">

  export type LogisticsOrderByWithAggregationInput = {
    id?: SortOrder
    fromLocation?: SortOrder
    toLocation?: SortOrder
    priceUnder1m3?: SortOrder
    priceOver1m3?: SortOrder
    description?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    organizationId?: SortOrder
    _count?: LogisticsCountOrderByAggregateInput
    _avg?: LogisticsAvgOrderByAggregateInput
    _max?: LogisticsMaxOrderByAggregateInput
    _min?: LogisticsMinOrderByAggregateInput
    _sum?: LogisticsSumOrderByAggregateInput
  }

  export type LogisticsScalarWhereWithAggregatesInput = {
    AND?: LogisticsScalarWhereWithAggregatesInput | LogisticsScalarWhereWithAggregatesInput[]
    OR?: LogisticsScalarWhereWithAggregatesInput[]
    NOT?: LogisticsScalarWhereWithAggregatesInput | LogisticsScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"Logistics"> | string
    fromLocation?: StringWithAggregatesFilter<"Logistics"> | string
    toLocation?: StringWithAggregatesFilter<"Logistics"> | string
    priceUnder1m3?: FloatWithAggregatesFilter<"Logistics"> | number
    priceOver1m3?: FloatWithAggregatesFilter<"Logistics"> | number
    description?: StringNullableWithAggregatesFilter<"Logistics"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"Logistics"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"Logistics"> | Date | string
    organizationId?: StringWithAggregatesFilter<"Logistics"> | string
  }

  export type SupplyOrderWhereInput = {
    AND?: SupplyOrderWhereInput | SupplyOrderWhereInput[]
    OR?: SupplyOrderWhereInput[]
    NOT?: SupplyOrderWhereInput | SupplyOrderWhereInput[]
    id?: StringFilter<"SupplyOrder"> | string
    partnerId?: StringFilter<"SupplyOrder"> | string
    deliveryDate?: DateTimeFilter<"SupplyOrder"> | Date | string
    status?: EnumSupplyOrderStatusFilter<"SupplyOrder"> | $Enums.SupplyOrderStatus
    totalAmount?: DecimalFilter<"SupplyOrder"> | Decimal | DecimalJsLike | number | string
    totalItems?: IntFilter<"SupplyOrder"> | number
    fulfillmentCenterId?: StringNullableFilter<"SupplyOrder"> | string | null
    createdAt?: DateTimeFilter<"SupplyOrder"> | Date | string
    updatedAt?: DateTimeFilter<"SupplyOrder"> | Date | string
    organizationId?: StringFilter<"SupplyOrder"> | string
    items?: SupplyOrderItemListRelationFilter
    organization?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
    partner?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
    fulfillmentCenter?: XOR<OrganizationNullableScalarRelationFilter, OrganizationWhereInput> | null
  }

  export type SupplyOrderOrderByWithRelationInput = {
    id?: SortOrder
    partnerId?: SortOrder
    deliveryDate?: SortOrder
    status?: SortOrder
    totalAmount?: SortOrder
    totalItems?: SortOrder
    fulfillmentCenterId?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    organizationId?: SortOrder
    items?: SupplyOrderItemOrderByRelationAggregateInput
    organization?: OrganizationOrderByWithRelationInput
    partner?: OrganizationOrderByWithRelationInput
    fulfillmentCenter?: OrganizationOrderByWithRelationInput
  }

  export type SupplyOrderWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: SupplyOrderWhereInput | SupplyOrderWhereInput[]
    OR?: SupplyOrderWhereInput[]
    NOT?: SupplyOrderWhereInput | SupplyOrderWhereInput[]
    partnerId?: StringFilter<"SupplyOrder"> | string
    deliveryDate?: DateTimeFilter<"SupplyOrder"> | Date | string
    status?: EnumSupplyOrderStatusFilter<"SupplyOrder"> | $Enums.SupplyOrderStatus
    totalAmount?: DecimalFilter<"SupplyOrder"> | Decimal | DecimalJsLike | number | string
    totalItems?: IntFilter<"SupplyOrder"> | number
    fulfillmentCenterId?: StringNullableFilter<"SupplyOrder"> | string | null
    createdAt?: DateTimeFilter<"SupplyOrder"> | Date | string
    updatedAt?: DateTimeFilter<"SupplyOrder"> | Date | string
    organizationId?: StringFilter<"SupplyOrder"> | string
    items?: SupplyOrderItemListRelationFilter
    organization?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
    partner?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
    fulfillmentCenter?: XOR<OrganizationNullableScalarRelationFilter, OrganizationWhereInput> | null
  }, "id">

  export type SupplyOrderOrderByWithAggregationInput = {
    id?: SortOrder
    partnerId?: SortOrder
    deliveryDate?: SortOrder
    status?: SortOrder
    totalAmount?: SortOrder
    totalItems?: SortOrder
    fulfillmentCenterId?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    organizationId?: SortOrder
    _count?: SupplyOrderCountOrderByAggregateInput
    _avg?: SupplyOrderAvgOrderByAggregateInput
    _max?: SupplyOrderMaxOrderByAggregateInput
    _min?: SupplyOrderMinOrderByAggregateInput
    _sum?: SupplyOrderSumOrderByAggregateInput
  }

  export type SupplyOrderScalarWhereWithAggregatesInput = {
    AND?: SupplyOrderScalarWhereWithAggregatesInput | SupplyOrderScalarWhereWithAggregatesInput[]
    OR?: SupplyOrderScalarWhereWithAggregatesInput[]
    NOT?: SupplyOrderScalarWhereWithAggregatesInput | SupplyOrderScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"SupplyOrder"> | string
    partnerId?: StringWithAggregatesFilter<"SupplyOrder"> | string
    deliveryDate?: DateTimeWithAggregatesFilter<"SupplyOrder"> | Date | string
    status?: EnumSupplyOrderStatusWithAggregatesFilter<"SupplyOrder"> | $Enums.SupplyOrderStatus
    totalAmount?: DecimalWithAggregatesFilter<"SupplyOrder"> | Decimal | DecimalJsLike | number | string
    totalItems?: IntWithAggregatesFilter<"SupplyOrder"> | number
    fulfillmentCenterId?: StringNullableWithAggregatesFilter<"SupplyOrder"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"SupplyOrder"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"SupplyOrder"> | Date | string
    organizationId?: StringWithAggregatesFilter<"SupplyOrder"> | string
  }

  export type SupplyOrderItemWhereInput = {
    AND?: SupplyOrderItemWhereInput | SupplyOrderItemWhereInput[]
    OR?: SupplyOrderItemWhereInput[]
    NOT?: SupplyOrderItemWhereInput | SupplyOrderItemWhereInput[]
    id?: StringFilter<"SupplyOrderItem"> | string
    supplyOrderId?: StringFilter<"SupplyOrderItem"> | string
    productId?: StringFilter<"SupplyOrderItem"> | string
    quantity?: IntFilter<"SupplyOrderItem"> | number
    price?: DecimalFilter<"SupplyOrderItem"> | Decimal | DecimalJsLike | number | string
    totalPrice?: DecimalFilter<"SupplyOrderItem"> | Decimal | DecimalJsLike | number | string
    createdAt?: DateTimeFilter<"SupplyOrderItem"> | Date | string
    updatedAt?: DateTimeFilter<"SupplyOrderItem"> | Date | string
    supplyOrder?: XOR<SupplyOrderScalarRelationFilter, SupplyOrderWhereInput>
    product?: XOR<ProductScalarRelationFilter, ProductWhereInput>
  }

  export type SupplyOrderItemOrderByWithRelationInput = {
    id?: SortOrder
    supplyOrderId?: SortOrder
    productId?: SortOrder
    quantity?: SortOrder
    price?: SortOrder
    totalPrice?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    supplyOrder?: SupplyOrderOrderByWithRelationInput
    product?: ProductOrderByWithRelationInput
  }

  export type SupplyOrderItemWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    supplyOrderId_productId?: SupplyOrderItemSupplyOrderIdProductIdCompoundUniqueInput
    AND?: SupplyOrderItemWhereInput | SupplyOrderItemWhereInput[]
    OR?: SupplyOrderItemWhereInput[]
    NOT?: SupplyOrderItemWhereInput | SupplyOrderItemWhereInput[]
    supplyOrderId?: StringFilter<"SupplyOrderItem"> | string
    productId?: StringFilter<"SupplyOrderItem"> | string
    quantity?: IntFilter<"SupplyOrderItem"> | number
    price?: DecimalFilter<"SupplyOrderItem"> | Decimal | DecimalJsLike | number | string
    totalPrice?: DecimalFilter<"SupplyOrderItem"> | Decimal | DecimalJsLike | number | string
    createdAt?: DateTimeFilter<"SupplyOrderItem"> | Date | string
    updatedAt?: DateTimeFilter<"SupplyOrderItem"> | Date | string
    supplyOrder?: XOR<SupplyOrderScalarRelationFilter, SupplyOrderWhereInput>
    product?: XOR<ProductScalarRelationFilter, ProductWhereInput>
  }, "id" | "supplyOrderId_productId">

  export type SupplyOrderItemOrderByWithAggregationInput = {
    id?: SortOrder
    supplyOrderId?: SortOrder
    productId?: SortOrder
    quantity?: SortOrder
    price?: SortOrder
    totalPrice?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: SupplyOrderItemCountOrderByAggregateInput
    _avg?: SupplyOrderItemAvgOrderByAggregateInput
    _max?: SupplyOrderItemMaxOrderByAggregateInput
    _min?: SupplyOrderItemMinOrderByAggregateInput
    _sum?: SupplyOrderItemSumOrderByAggregateInput
  }

  export type SupplyOrderItemScalarWhereWithAggregatesInput = {
    AND?: SupplyOrderItemScalarWhereWithAggregatesInput | SupplyOrderItemScalarWhereWithAggregatesInput[]
    OR?: SupplyOrderItemScalarWhereWithAggregatesInput[]
    NOT?: SupplyOrderItemScalarWhereWithAggregatesInput | SupplyOrderItemScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"SupplyOrderItem"> | string
    supplyOrderId?: StringWithAggregatesFilter<"SupplyOrderItem"> | string
    productId?: StringWithAggregatesFilter<"SupplyOrderItem"> | string
    quantity?: IntWithAggregatesFilter<"SupplyOrderItem"> | number
    price?: DecimalWithAggregatesFilter<"SupplyOrderItem"> | Decimal | DecimalJsLike | number | string
    totalPrice?: DecimalWithAggregatesFilter<"SupplyOrderItem"> | Decimal | DecimalJsLike | number | string
    createdAt?: DateTimeWithAggregatesFilter<"SupplyOrderItem"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"SupplyOrderItem"> | Date | string
  }

  export type SupplySupplierWhereInput = {
    AND?: SupplySupplierWhereInput | SupplySupplierWhereInput[]
    OR?: SupplySupplierWhereInput[]
    NOT?: SupplySupplierWhereInput | SupplySupplierWhereInput[]
    id?: StringFilter<"SupplySupplier"> | string
    name?: StringFilter<"SupplySupplier"> | string
    contactName?: StringFilter<"SupplySupplier"> | string
    phone?: StringFilter<"SupplySupplier"> | string
    market?: StringNullableFilter<"SupplySupplier"> | string | null
    address?: StringNullableFilter<"SupplySupplier"> | string | null
    place?: StringNullableFilter<"SupplySupplier"> | string | null
    telegram?: StringNullableFilter<"SupplySupplier"> | string | null
    organizationId?: StringFilter<"SupplySupplier"> | string
    createdAt?: DateTimeFilter<"SupplySupplier"> | Date | string
    updatedAt?: DateTimeFilter<"SupplySupplier"> | Date | string
    organization?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
  }

  export type SupplySupplierOrderByWithRelationInput = {
    id?: SortOrder
    name?: SortOrder
    contactName?: SortOrder
    phone?: SortOrder
    market?: SortOrderInput | SortOrder
    address?: SortOrderInput | SortOrder
    place?: SortOrderInput | SortOrder
    telegram?: SortOrderInput | SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    organization?: OrganizationOrderByWithRelationInput
  }

  export type SupplySupplierWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: SupplySupplierWhereInput | SupplySupplierWhereInput[]
    OR?: SupplySupplierWhereInput[]
    NOT?: SupplySupplierWhereInput | SupplySupplierWhereInput[]
    name?: StringFilter<"SupplySupplier"> | string
    contactName?: StringFilter<"SupplySupplier"> | string
    phone?: StringFilter<"SupplySupplier"> | string
    market?: StringNullableFilter<"SupplySupplier"> | string | null
    address?: StringNullableFilter<"SupplySupplier"> | string | null
    place?: StringNullableFilter<"SupplySupplier"> | string | null
    telegram?: StringNullableFilter<"SupplySupplier"> | string | null
    organizationId?: StringFilter<"SupplySupplier"> | string
    createdAt?: DateTimeFilter<"SupplySupplier"> | Date | string
    updatedAt?: DateTimeFilter<"SupplySupplier"> | Date | string
    organization?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
  }, "id">

  export type SupplySupplierOrderByWithAggregationInput = {
    id?: SortOrder
    name?: SortOrder
    contactName?: SortOrder
    phone?: SortOrder
    market?: SortOrderInput | SortOrder
    address?: SortOrderInput | SortOrder
    place?: SortOrderInput | SortOrder
    telegram?: SortOrderInput | SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: SupplySupplierCountOrderByAggregateInput
    _max?: SupplySupplierMaxOrderByAggregateInput
    _min?: SupplySupplierMinOrderByAggregateInput
  }

  export type SupplySupplierScalarWhereWithAggregatesInput = {
    AND?: SupplySupplierScalarWhereWithAggregatesInput | SupplySupplierScalarWhereWithAggregatesInput[]
    OR?: SupplySupplierScalarWhereWithAggregatesInput[]
    NOT?: SupplySupplierScalarWhereWithAggregatesInput | SupplySupplierScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"SupplySupplier"> | string
    name?: StringWithAggregatesFilter<"SupplySupplier"> | string
    contactName?: StringWithAggregatesFilter<"SupplySupplier"> | string
    phone?: StringWithAggregatesFilter<"SupplySupplier"> | string
    market?: StringNullableWithAggregatesFilter<"SupplySupplier"> | string | null
    address?: StringNullableWithAggregatesFilter<"SupplySupplier"> | string | null
    place?: StringNullableWithAggregatesFilter<"SupplySupplier"> | string | null
    telegram?: StringNullableWithAggregatesFilter<"SupplySupplier"> | string | null
    organizationId?: StringWithAggregatesFilter<"SupplySupplier"> | string
    createdAt?: DateTimeWithAggregatesFilter<"SupplySupplier"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"SupplySupplier"> | Date | string
  }

  export type UserCreateInput = {
    id?: string
    phone: string
    avatar?: string | null
    managerName?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    sentMessages?: MessageCreateNestedManyWithoutSenderInput
    smsCodes?: SmsCodeCreateNestedManyWithoutUserInput
    organization?: OrganizationCreateNestedOneWithoutUsersInput
  }

  export type UserUncheckedCreateInput = {
    id?: string
    phone: string
    avatar?: string | null
    managerName?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    organizationId?: string | null
    sentMessages?: MessageUncheckedCreateNestedManyWithoutSenderInput
    smsCodes?: SmsCodeUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    phone?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    managerName?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    sentMessages?: MessageUpdateManyWithoutSenderNestedInput
    smsCodes?: SmsCodeUpdateManyWithoutUserNestedInput
    organization?: OrganizationUpdateOneWithoutUsersNestedInput
  }

  export type UserUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    phone?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    managerName?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    sentMessages?: MessageUncheckedUpdateManyWithoutSenderNestedInput
    smsCodes?: SmsCodeUncheckedUpdateManyWithoutUserNestedInput
  }

  export type UserCreateManyInput = {
    id?: string
    phone: string
    avatar?: string | null
    managerName?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    organizationId?: string | null
  }

  export type UserUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    phone?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    managerName?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type UserUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    phone?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    managerName?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type AdminCreateInput = {
    id?: string
    username: string
    password: string
    email?: string | null
    isActive?: boolean
    lastLogin?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AdminUncheckedCreateInput = {
    id?: string
    username: string
    password: string
    email?: string | null
    isActive?: boolean
    lastLogin?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AdminUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    password?: StringFieldUpdateOperationsInput | string
    email?: NullableStringFieldUpdateOperationsInput | string | null
    isActive?: BoolFieldUpdateOperationsInput | boolean
    lastLogin?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AdminUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    password?: StringFieldUpdateOperationsInput | string
    email?: NullableStringFieldUpdateOperationsInput | string | null
    isActive?: BoolFieldUpdateOperationsInput | boolean
    lastLogin?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AdminCreateManyInput = {
    id?: string
    username: string
    password: string
    email?: string | null
    isActive?: boolean
    lastLogin?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AdminUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    password?: StringFieldUpdateOperationsInput | string
    email?: NullableStringFieldUpdateOperationsInput | string | null
    isActive?: BoolFieldUpdateOperationsInput | boolean
    lastLogin?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AdminUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    password?: StringFieldUpdateOperationsInput | string
    email?: NullableStringFieldUpdateOperationsInput | string | null
    isActive?: BoolFieldUpdateOperationsInput | boolean
    lastLogin?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SmsCodeCreateInput = {
    id?: string
    code: string
    phone: string
    expiresAt: Date | string
    isUsed?: boolean
    attempts?: number
    maxAttempts?: number
    createdAt?: Date | string
    user?: UserCreateNestedOneWithoutSmsCodesInput
  }

  export type SmsCodeUncheckedCreateInput = {
    id?: string
    code: string
    phone: string
    expiresAt: Date | string
    isUsed?: boolean
    attempts?: number
    maxAttempts?: number
    createdAt?: Date | string
    userId?: string | null
  }

  export type SmsCodeUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    phone?: StringFieldUpdateOperationsInput | string
    expiresAt?: DateTimeFieldUpdateOperationsInput | Date | string
    isUsed?: BoolFieldUpdateOperationsInput | boolean
    attempts?: IntFieldUpdateOperationsInput | number
    maxAttempts?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    user?: UserUpdateOneWithoutSmsCodesNestedInput
  }

  export type SmsCodeUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    phone?: StringFieldUpdateOperationsInput | string
    expiresAt?: DateTimeFieldUpdateOperationsInput | Date | string
    isUsed?: BoolFieldUpdateOperationsInput | boolean
    attempts?: IntFieldUpdateOperationsInput | number
    maxAttempts?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    userId?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type SmsCodeCreateManyInput = {
    id?: string
    code: string
    phone: string
    expiresAt: Date | string
    isUsed?: boolean
    attempts?: number
    maxAttempts?: number
    createdAt?: Date | string
    userId?: string | null
  }

  export type SmsCodeUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    phone?: StringFieldUpdateOperationsInput | string
    expiresAt?: DateTimeFieldUpdateOperationsInput | Date | string
    isUsed?: BoolFieldUpdateOperationsInput | boolean
    attempts?: IntFieldUpdateOperationsInput | number
    maxAttempts?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SmsCodeUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    phone?: StringFieldUpdateOperationsInput | string
    expiresAt?: DateTimeFieldUpdateOperationsInput | Date | string
    isUsed?: BoolFieldUpdateOperationsInput | boolean
    attempts?: IntFieldUpdateOperationsInput | number
    maxAttempts?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    userId?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type OrganizationCreateInput = {
    id?: string
    inn: string
    kpp?: string | null
    name?: string | null
    fullName?: string | null
    ogrn?: string | null
    ogrnDate?: Date | string | null
    type: $Enums.OrganizationType
    createdAt?: Date | string
    updatedAt?: Date | string
    address?: string | null
    addressFull?: string | null
    status?: string | null
    actualityDate?: Date | string | null
    registrationDate?: Date | string | null
    liquidationDate?: Date | string | null
    managementName?: string | null
    managementPost?: string | null
    opfCode?: string | null
    opfFull?: string | null
    opfShort?: string | null
    okato?: string | null
    oktmo?: string | null
    okpo?: string | null
    okved?: string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: number | null
    revenue?: bigint | number | null
    taxSystem?: string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyCreateNestedManyWithoutOrganizationInput
    carts?: CartCreateNestedOneWithoutOrganizationInput
    counterpartyOf?: CounterpartyCreateNestedManyWithoutCounterpartyInput
    organizationCounterparties?: CounterpartyCreateNestedManyWithoutOrganizationInput
    receivedRequests?: CounterpartyRequestCreateNestedManyWithoutReceiverInput
    sentRequests?: CounterpartyRequestCreateNestedManyWithoutSenderInput
    employees?: EmployeeCreateNestedManyWithoutOrganizationInput
    favorites?: FavoritesCreateNestedManyWithoutOrganizationInput
    receivedMessages?: MessageCreateNestedManyWithoutReceiverOrganizationInput
    sentMessages?: MessageCreateNestedManyWithoutSenderOrganizationInput
    products?: ProductCreateNestedManyWithoutOrganizationInput
    services?: ServiceCreateNestedManyWithoutOrganizationInput
    supplies?: SupplyCreateNestedManyWithoutOrganizationInput
    users?: UserCreateNestedManyWithoutOrganizationInput
    logistics?: LogisticsCreateNestedManyWithoutOrganizationInput
    supplyOrders?: SupplyOrderCreateNestedManyWithoutOrganizationInput
    partnerSupplyOrders?: SupplyOrderCreateNestedManyWithoutPartnerInput
    fulfillmentSupplyOrders?: SupplyOrderCreateNestedManyWithoutFulfillmentCenterInput
    wildberriesSupplies?: WildberriesSupplyCreateNestedManyWithoutOrganizationInput
    supplySuppliers?: SupplySupplierCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationUncheckedCreateInput = {
    id?: string
    inn: string
    kpp?: string | null
    name?: string | null
    fullName?: string | null
    ogrn?: string | null
    ogrnDate?: Date | string | null
    type: $Enums.OrganizationType
    createdAt?: Date | string
    updatedAt?: Date | string
    address?: string | null
    addressFull?: string | null
    status?: string | null
    actualityDate?: Date | string | null
    registrationDate?: Date | string | null
    liquidationDate?: Date | string | null
    managementName?: string | null
    managementPost?: string | null
    opfCode?: string | null
    opfFull?: string | null
    opfShort?: string | null
    okato?: string | null
    oktmo?: string | null
    okpo?: string | null
    okved?: string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: number | null
    revenue?: bigint | number | null
    taxSystem?: string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUncheckedCreateNestedManyWithoutOrganizationInput
    carts?: CartUncheckedCreateNestedOneWithoutOrganizationInput
    counterpartyOf?: CounterpartyUncheckedCreateNestedManyWithoutCounterpartyInput
    organizationCounterparties?: CounterpartyUncheckedCreateNestedManyWithoutOrganizationInput
    receivedRequests?: CounterpartyRequestUncheckedCreateNestedManyWithoutReceiverInput
    sentRequests?: CounterpartyRequestUncheckedCreateNestedManyWithoutSenderInput
    employees?: EmployeeUncheckedCreateNestedManyWithoutOrganizationInput
    favorites?: FavoritesUncheckedCreateNestedManyWithoutOrganizationInput
    receivedMessages?: MessageUncheckedCreateNestedManyWithoutReceiverOrganizationInput
    sentMessages?: MessageUncheckedCreateNestedManyWithoutSenderOrganizationInput
    products?: ProductUncheckedCreateNestedManyWithoutOrganizationInput
    services?: ServiceUncheckedCreateNestedManyWithoutOrganizationInput
    supplies?: SupplyUncheckedCreateNestedManyWithoutOrganizationInput
    users?: UserUncheckedCreateNestedManyWithoutOrganizationInput
    logistics?: LogisticsUncheckedCreateNestedManyWithoutOrganizationInput
    supplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutOrganizationInput
    partnerSupplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutPartnerInput
    fulfillmentSupplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutFulfillmentCenterInput
    wildberriesSupplies?: WildberriesSupplyUncheckedCreateNestedManyWithoutOrganizationInput
    supplySuppliers?: SupplySupplierUncheckedCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    inn?: StringFieldUpdateOperationsInput | string
    kpp?: NullableStringFieldUpdateOperationsInput | string | null
    name?: NullableStringFieldUpdateOperationsInput | string | null
    fullName?: NullableStringFieldUpdateOperationsInput | string | null
    ogrn?: NullableStringFieldUpdateOperationsInput | string | null
    ogrnDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    type?: EnumOrganizationTypeFieldUpdateOperationsInput | $Enums.OrganizationType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    address?: NullableStringFieldUpdateOperationsInput | string | null
    addressFull?: NullableStringFieldUpdateOperationsInput | string | null
    status?: NullableStringFieldUpdateOperationsInput | string | null
    actualityDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    registrationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    liquidationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managementName?: NullableStringFieldUpdateOperationsInput | string | null
    managementPost?: NullableStringFieldUpdateOperationsInput | string | null
    opfCode?: NullableStringFieldUpdateOperationsInput | string | null
    opfFull?: NullableStringFieldUpdateOperationsInput | string | null
    opfShort?: NullableStringFieldUpdateOperationsInput | string | null
    okato?: NullableStringFieldUpdateOperationsInput | string | null
    oktmo?: NullableStringFieldUpdateOperationsInput | string | null
    okpo?: NullableStringFieldUpdateOperationsInput | string | null
    okved?: NullableStringFieldUpdateOperationsInput | string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: NullableIntFieldUpdateOperationsInput | number | null
    revenue?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    taxSystem?: NullableStringFieldUpdateOperationsInput | string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUpdateManyWithoutOrganizationNestedInput
    carts?: CartUpdateOneWithoutOrganizationNestedInput
    counterpartyOf?: CounterpartyUpdateManyWithoutCounterpartyNestedInput
    organizationCounterparties?: CounterpartyUpdateManyWithoutOrganizationNestedInput
    receivedRequests?: CounterpartyRequestUpdateManyWithoutReceiverNestedInput
    sentRequests?: CounterpartyRequestUpdateManyWithoutSenderNestedInput
    employees?: EmployeeUpdateManyWithoutOrganizationNestedInput
    favorites?: FavoritesUpdateManyWithoutOrganizationNestedInput
    receivedMessages?: MessageUpdateManyWithoutReceiverOrganizationNestedInput
    sentMessages?: MessageUpdateManyWithoutSenderOrganizationNestedInput
    products?: ProductUpdateManyWithoutOrganizationNestedInput
    services?: ServiceUpdateManyWithoutOrganizationNestedInput
    supplies?: SupplyUpdateManyWithoutOrganizationNestedInput
    users?: UserUpdateManyWithoutOrganizationNestedInput
    logistics?: LogisticsUpdateManyWithoutOrganizationNestedInput
    supplyOrders?: SupplyOrderUpdateManyWithoutOrganizationNestedInput
    partnerSupplyOrders?: SupplyOrderUpdateManyWithoutPartnerNestedInput
    fulfillmentSupplyOrders?: SupplyOrderUpdateManyWithoutFulfillmentCenterNestedInput
    wildberriesSupplies?: WildberriesSupplyUpdateManyWithoutOrganizationNestedInput
    supplySuppliers?: SupplySupplierUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    inn?: StringFieldUpdateOperationsInput | string
    kpp?: NullableStringFieldUpdateOperationsInput | string | null
    name?: NullableStringFieldUpdateOperationsInput | string | null
    fullName?: NullableStringFieldUpdateOperationsInput | string | null
    ogrn?: NullableStringFieldUpdateOperationsInput | string | null
    ogrnDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    type?: EnumOrganizationTypeFieldUpdateOperationsInput | $Enums.OrganizationType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    address?: NullableStringFieldUpdateOperationsInput | string | null
    addressFull?: NullableStringFieldUpdateOperationsInput | string | null
    status?: NullableStringFieldUpdateOperationsInput | string | null
    actualityDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    registrationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    liquidationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managementName?: NullableStringFieldUpdateOperationsInput | string | null
    managementPost?: NullableStringFieldUpdateOperationsInput | string | null
    opfCode?: NullableStringFieldUpdateOperationsInput | string | null
    opfFull?: NullableStringFieldUpdateOperationsInput | string | null
    opfShort?: NullableStringFieldUpdateOperationsInput | string | null
    okato?: NullableStringFieldUpdateOperationsInput | string | null
    oktmo?: NullableStringFieldUpdateOperationsInput | string | null
    okpo?: NullableStringFieldUpdateOperationsInput | string | null
    okved?: NullableStringFieldUpdateOperationsInput | string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: NullableIntFieldUpdateOperationsInput | number | null
    revenue?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    taxSystem?: NullableStringFieldUpdateOperationsInput | string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUncheckedUpdateManyWithoutOrganizationNestedInput
    carts?: CartUncheckedUpdateOneWithoutOrganizationNestedInput
    counterpartyOf?: CounterpartyUncheckedUpdateManyWithoutCounterpartyNestedInput
    organizationCounterparties?: CounterpartyUncheckedUpdateManyWithoutOrganizationNestedInput
    receivedRequests?: CounterpartyRequestUncheckedUpdateManyWithoutReceiverNestedInput
    sentRequests?: CounterpartyRequestUncheckedUpdateManyWithoutSenderNestedInput
    employees?: EmployeeUncheckedUpdateManyWithoutOrganizationNestedInput
    favorites?: FavoritesUncheckedUpdateManyWithoutOrganizationNestedInput
    receivedMessages?: MessageUncheckedUpdateManyWithoutReceiverOrganizationNestedInput
    sentMessages?: MessageUncheckedUpdateManyWithoutSenderOrganizationNestedInput
    products?: ProductUncheckedUpdateManyWithoutOrganizationNestedInput
    services?: ServiceUncheckedUpdateManyWithoutOrganizationNestedInput
    supplies?: SupplyUncheckedUpdateManyWithoutOrganizationNestedInput
    users?: UserUncheckedUpdateManyWithoutOrganizationNestedInput
    logistics?: LogisticsUncheckedUpdateManyWithoutOrganizationNestedInput
    supplyOrders?: SupplyOrderUncheckedUpdateManyWithoutOrganizationNestedInput
    partnerSupplyOrders?: SupplyOrderUncheckedUpdateManyWithoutPartnerNestedInput
    fulfillmentSupplyOrders?: SupplyOrderUncheckedUpdateManyWithoutFulfillmentCenterNestedInput
    wildberriesSupplies?: WildberriesSupplyUncheckedUpdateManyWithoutOrganizationNestedInput
    supplySuppliers?: SupplySupplierUncheckedUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationCreateManyInput = {
    id?: string
    inn: string
    kpp?: string | null
    name?: string | null
    fullName?: string | null
    ogrn?: string | null
    ogrnDate?: Date | string | null
    type: $Enums.OrganizationType
    createdAt?: Date | string
    updatedAt?: Date | string
    address?: string | null
    addressFull?: string | null
    status?: string | null
    actualityDate?: Date | string | null
    registrationDate?: Date | string | null
    liquidationDate?: Date | string | null
    managementName?: string | null
    managementPost?: string | null
    opfCode?: string | null
    opfFull?: string | null
    opfShort?: string | null
    okato?: string | null
    oktmo?: string | null
    okpo?: string | null
    okved?: string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: number | null
    revenue?: bigint | number | null
    taxSystem?: string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
  }

  export type OrganizationUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    inn?: StringFieldUpdateOperationsInput | string
    kpp?: NullableStringFieldUpdateOperationsInput | string | null
    name?: NullableStringFieldUpdateOperationsInput | string | null
    fullName?: NullableStringFieldUpdateOperationsInput | string | null
    ogrn?: NullableStringFieldUpdateOperationsInput | string | null
    ogrnDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    type?: EnumOrganizationTypeFieldUpdateOperationsInput | $Enums.OrganizationType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    address?: NullableStringFieldUpdateOperationsInput | string | null
    addressFull?: NullableStringFieldUpdateOperationsInput | string | null
    status?: NullableStringFieldUpdateOperationsInput | string | null
    actualityDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    registrationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    liquidationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managementName?: NullableStringFieldUpdateOperationsInput | string | null
    managementPost?: NullableStringFieldUpdateOperationsInput | string | null
    opfCode?: NullableStringFieldUpdateOperationsInput | string | null
    opfFull?: NullableStringFieldUpdateOperationsInput | string | null
    opfShort?: NullableStringFieldUpdateOperationsInput | string | null
    okato?: NullableStringFieldUpdateOperationsInput | string | null
    oktmo?: NullableStringFieldUpdateOperationsInput | string | null
    okpo?: NullableStringFieldUpdateOperationsInput | string | null
    okved?: NullableStringFieldUpdateOperationsInput | string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: NullableIntFieldUpdateOperationsInput | number | null
    revenue?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    taxSystem?: NullableStringFieldUpdateOperationsInput | string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
  }

  export type OrganizationUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    inn?: StringFieldUpdateOperationsInput | string
    kpp?: NullableStringFieldUpdateOperationsInput | string | null
    name?: NullableStringFieldUpdateOperationsInput | string | null
    fullName?: NullableStringFieldUpdateOperationsInput | string | null
    ogrn?: NullableStringFieldUpdateOperationsInput | string | null
    ogrnDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    type?: EnumOrganizationTypeFieldUpdateOperationsInput | $Enums.OrganizationType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    address?: NullableStringFieldUpdateOperationsInput | string | null
    addressFull?: NullableStringFieldUpdateOperationsInput | string | null
    status?: NullableStringFieldUpdateOperationsInput | string | null
    actualityDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    registrationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    liquidationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managementName?: NullableStringFieldUpdateOperationsInput | string | null
    managementPost?: NullableStringFieldUpdateOperationsInput | string | null
    opfCode?: NullableStringFieldUpdateOperationsInput | string | null
    opfFull?: NullableStringFieldUpdateOperationsInput | string | null
    opfShort?: NullableStringFieldUpdateOperationsInput | string | null
    okato?: NullableStringFieldUpdateOperationsInput | string | null
    oktmo?: NullableStringFieldUpdateOperationsInput | string | null
    okpo?: NullableStringFieldUpdateOperationsInput | string | null
    okved?: NullableStringFieldUpdateOperationsInput | string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: NullableIntFieldUpdateOperationsInput | number | null
    revenue?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    taxSystem?: NullableStringFieldUpdateOperationsInput | string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
  }

  export type ApiKeyCreateInput = {
    id?: string
    marketplace: $Enums.MarketplaceType
    apiKey: string
    isActive?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    validationData?: NullableJsonNullValueInput | InputJsonValue
    organization: OrganizationCreateNestedOneWithoutApiKeysInput
  }

  export type ApiKeyUncheckedCreateInput = {
    id?: string
    marketplace: $Enums.MarketplaceType
    apiKey: string
    isActive?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    validationData?: NullableJsonNullValueInput | InputJsonValue
    organizationId: string
  }

  export type ApiKeyUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    marketplace?: EnumMarketplaceTypeFieldUpdateOperationsInput | $Enums.MarketplaceType
    apiKey?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    validationData?: NullableJsonNullValueInput | InputJsonValue
    organization?: OrganizationUpdateOneRequiredWithoutApiKeysNestedInput
  }

  export type ApiKeyUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    marketplace?: EnumMarketplaceTypeFieldUpdateOperationsInput | $Enums.MarketplaceType
    apiKey?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    validationData?: NullableJsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
  }

  export type ApiKeyCreateManyInput = {
    id?: string
    marketplace: $Enums.MarketplaceType
    apiKey: string
    isActive?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    validationData?: NullableJsonNullValueInput | InputJsonValue
    organizationId: string
  }

  export type ApiKeyUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    marketplace?: EnumMarketplaceTypeFieldUpdateOperationsInput | $Enums.MarketplaceType
    apiKey?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    validationData?: NullableJsonNullValueInput | InputJsonValue
  }

  export type ApiKeyUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    marketplace?: EnumMarketplaceTypeFieldUpdateOperationsInput | $Enums.MarketplaceType
    apiKey?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    validationData?: NullableJsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
  }

  export type CounterpartyRequestCreateInput = {
    id?: string
    status?: $Enums.CounterpartyRequestStatus
    createdAt?: Date | string
    updatedAt?: Date | string
    message?: string | null
    receiver: OrganizationCreateNestedOneWithoutReceivedRequestsInput
    sender: OrganizationCreateNestedOneWithoutSentRequestsInput
  }

  export type CounterpartyRequestUncheckedCreateInput = {
    id?: string
    status?: $Enums.CounterpartyRequestStatus
    createdAt?: Date | string
    updatedAt?: Date | string
    senderId: string
    receiverId: string
    message?: string | null
  }

  export type CounterpartyRequestUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    status?: EnumCounterpartyRequestStatusFieldUpdateOperationsInput | $Enums.CounterpartyRequestStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    message?: NullableStringFieldUpdateOperationsInput | string | null
    receiver?: OrganizationUpdateOneRequiredWithoutReceivedRequestsNestedInput
    sender?: OrganizationUpdateOneRequiredWithoutSentRequestsNestedInput
  }

  export type CounterpartyRequestUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    status?: EnumCounterpartyRequestStatusFieldUpdateOperationsInput | $Enums.CounterpartyRequestStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    senderId?: StringFieldUpdateOperationsInput | string
    receiverId?: StringFieldUpdateOperationsInput | string
    message?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type CounterpartyRequestCreateManyInput = {
    id?: string
    status?: $Enums.CounterpartyRequestStatus
    createdAt?: Date | string
    updatedAt?: Date | string
    senderId: string
    receiverId: string
    message?: string | null
  }

  export type CounterpartyRequestUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    status?: EnumCounterpartyRequestStatusFieldUpdateOperationsInput | $Enums.CounterpartyRequestStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    message?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type CounterpartyRequestUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    status?: EnumCounterpartyRequestStatusFieldUpdateOperationsInput | $Enums.CounterpartyRequestStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    senderId?: StringFieldUpdateOperationsInput | string
    receiverId?: StringFieldUpdateOperationsInput | string
    message?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type CounterpartyCreateInput = {
    id?: string
    createdAt?: Date | string
    counterparty: OrganizationCreateNestedOneWithoutCounterpartyOfInput
    organization: OrganizationCreateNestedOneWithoutOrganizationCounterpartiesInput
  }

  export type CounterpartyUncheckedCreateInput = {
    id?: string
    createdAt?: Date | string
    organizationId: string
    counterpartyId: string
  }

  export type CounterpartyUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    counterparty?: OrganizationUpdateOneRequiredWithoutCounterpartyOfNestedInput
    organization?: OrganizationUpdateOneRequiredWithoutOrganizationCounterpartiesNestedInput
  }

  export type CounterpartyUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organizationId?: StringFieldUpdateOperationsInput | string
    counterpartyId?: StringFieldUpdateOperationsInput | string
  }

  export type CounterpartyCreateManyInput = {
    id?: string
    createdAt?: Date | string
    organizationId: string
    counterpartyId: string
  }

  export type CounterpartyUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type CounterpartyUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organizationId?: StringFieldUpdateOperationsInput | string
    counterpartyId?: StringFieldUpdateOperationsInput | string
  }

  export type MessageCreateInput = {
    id?: string
    content?: string | null
    type?: $Enums.MessageType
    voiceUrl?: string | null
    voiceDuration?: number | null
    fileUrl?: string | null
    fileName?: string | null
    fileSize?: number | null
    fileType?: string | null
    isRead?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    receiverOrganization: OrganizationCreateNestedOneWithoutReceivedMessagesInput
    sender: UserCreateNestedOneWithoutSentMessagesInput
    senderOrganization: OrganizationCreateNestedOneWithoutSentMessagesInput
  }

  export type MessageUncheckedCreateInput = {
    id?: string
    content?: string | null
    type?: $Enums.MessageType
    voiceUrl?: string | null
    voiceDuration?: number | null
    fileUrl?: string | null
    fileName?: string | null
    fileSize?: number | null
    fileType?: string | null
    isRead?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    senderId: string
    senderOrganizationId: string
    receiverOrganizationId: string
  }

  export type MessageUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    content?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMessageTypeFieldUpdateOperationsInput | $Enums.MessageType
    voiceUrl?: NullableStringFieldUpdateOperationsInput | string | null
    voiceDuration?: NullableIntFieldUpdateOperationsInput | number | null
    fileUrl?: NullableStringFieldUpdateOperationsInput | string | null
    fileName?: NullableStringFieldUpdateOperationsInput | string | null
    fileSize?: NullableIntFieldUpdateOperationsInput | number | null
    fileType?: NullableStringFieldUpdateOperationsInput | string | null
    isRead?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    receiverOrganization?: OrganizationUpdateOneRequiredWithoutReceivedMessagesNestedInput
    sender?: UserUpdateOneRequiredWithoutSentMessagesNestedInput
    senderOrganization?: OrganizationUpdateOneRequiredWithoutSentMessagesNestedInput
  }

  export type MessageUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    content?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMessageTypeFieldUpdateOperationsInput | $Enums.MessageType
    voiceUrl?: NullableStringFieldUpdateOperationsInput | string | null
    voiceDuration?: NullableIntFieldUpdateOperationsInput | number | null
    fileUrl?: NullableStringFieldUpdateOperationsInput | string | null
    fileName?: NullableStringFieldUpdateOperationsInput | string | null
    fileSize?: NullableIntFieldUpdateOperationsInput | number | null
    fileType?: NullableStringFieldUpdateOperationsInput | string | null
    isRead?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    senderId?: StringFieldUpdateOperationsInput | string
    senderOrganizationId?: StringFieldUpdateOperationsInput | string
    receiverOrganizationId?: StringFieldUpdateOperationsInput | string
  }

  export type MessageCreateManyInput = {
    id?: string
    content?: string | null
    type?: $Enums.MessageType
    voiceUrl?: string | null
    voiceDuration?: number | null
    fileUrl?: string | null
    fileName?: string | null
    fileSize?: number | null
    fileType?: string | null
    isRead?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    senderId: string
    senderOrganizationId: string
    receiverOrganizationId: string
  }

  export type MessageUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    content?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMessageTypeFieldUpdateOperationsInput | $Enums.MessageType
    voiceUrl?: NullableStringFieldUpdateOperationsInput | string | null
    voiceDuration?: NullableIntFieldUpdateOperationsInput | number | null
    fileUrl?: NullableStringFieldUpdateOperationsInput | string | null
    fileName?: NullableStringFieldUpdateOperationsInput | string | null
    fileSize?: NullableIntFieldUpdateOperationsInput | number | null
    fileType?: NullableStringFieldUpdateOperationsInput | string | null
    isRead?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MessageUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    content?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMessageTypeFieldUpdateOperationsInput | $Enums.MessageType
    voiceUrl?: NullableStringFieldUpdateOperationsInput | string | null
    voiceDuration?: NullableIntFieldUpdateOperationsInput | number | null
    fileUrl?: NullableStringFieldUpdateOperationsInput | string | null
    fileName?: NullableStringFieldUpdateOperationsInput | string | null
    fileSize?: NullableIntFieldUpdateOperationsInput | number | null
    fileType?: NullableStringFieldUpdateOperationsInput | string | null
    isRead?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    senderId?: StringFieldUpdateOperationsInput | string
    senderOrganizationId?: StringFieldUpdateOperationsInput | string
    receiverOrganizationId?: StringFieldUpdateOperationsInput | string
  }

  export type ServiceCreateInput = {
    id?: string
    name: string
    description?: string | null
    price: Decimal | DecimalJsLike | number | string
    imageUrl?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    organization: OrganizationCreateNestedOneWithoutServicesInput
  }

  export type ServiceUncheckedCreateInput = {
    id?: string
    name: string
    description?: string | null
    price: Decimal | DecimalJsLike | number | string
    imageUrl?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    organizationId: string
  }

  export type ServiceUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    price?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    imageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organization?: OrganizationUpdateOneRequiredWithoutServicesNestedInput
  }

  export type ServiceUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    price?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    imageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organizationId?: StringFieldUpdateOperationsInput | string
  }

  export type ServiceCreateManyInput = {
    id?: string
    name: string
    description?: string | null
    price: Decimal | DecimalJsLike | number | string
    imageUrl?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    organizationId: string
  }

  export type ServiceUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    price?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    imageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ServiceUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    price?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    imageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organizationId?: StringFieldUpdateOperationsInput | string
  }

  export type SupplyCreateInput = {
    id?: string
    name: string
    description?: string | null
    price: Decimal | DecimalJsLike | number | string
    quantity?: number
    unit?: string
    category?: string
    status?: string
    date?: Date | string
    supplier?: string
    minStock?: number
    currentStock?: number
    imageUrl?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    organization: OrganizationCreateNestedOneWithoutSuppliesInput
  }

  export type SupplyUncheckedCreateInput = {
    id?: string
    name: string
    description?: string | null
    price: Decimal | DecimalJsLike | number | string
    quantity?: number
    unit?: string
    category?: string
    status?: string
    date?: Date | string
    supplier?: string
    minStock?: number
    currentStock?: number
    imageUrl?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    organizationId: string
  }

  export type SupplyUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    price?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    quantity?: IntFieldUpdateOperationsInput | number
    unit?: StringFieldUpdateOperationsInput | string
    category?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    date?: DateTimeFieldUpdateOperationsInput | Date | string
    supplier?: StringFieldUpdateOperationsInput | string
    minStock?: IntFieldUpdateOperationsInput | number
    currentStock?: IntFieldUpdateOperationsInput | number
    imageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organization?: OrganizationUpdateOneRequiredWithoutSuppliesNestedInput
  }

  export type SupplyUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    price?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    quantity?: IntFieldUpdateOperationsInput | number
    unit?: StringFieldUpdateOperationsInput | string
    category?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    date?: DateTimeFieldUpdateOperationsInput | Date | string
    supplier?: StringFieldUpdateOperationsInput | string
    minStock?: IntFieldUpdateOperationsInput | number
    currentStock?: IntFieldUpdateOperationsInput | number
    imageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organizationId?: StringFieldUpdateOperationsInput | string
  }

  export type SupplyCreateManyInput = {
    id?: string
    name: string
    description?: string | null
    price: Decimal | DecimalJsLike | number | string
    quantity?: number
    unit?: string
    category?: string
    status?: string
    date?: Date | string
    supplier?: string
    minStock?: number
    currentStock?: number
    imageUrl?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    organizationId: string
  }

  export type SupplyUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    price?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    quantity?: IntFieldUpdateOperationsInput | number
    unit?: StringFieldUpdateOperationsInput | string
    category?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    date?: DateTimeFieldUpdateOperationsInput | Date | string
    supplier?: StringFieldUpdateOperationsInput | string
    minStock?: IntFieldUpdateOperationsInput | number
    currentStock?: IntFieldUpdateOperationsInput | number
    imageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SupplyUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    price?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    quantity?: IntFieldUpdateOperationsInput | number
    unit?: StringFieldUpdateOperationsInput | string
    category?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    date?: DateTimeFieldUpdateOperationsInput | Date | string
    supplier?: StringFieldUpdateOperationsInput | string
    minStock?: IntFieldUpdateOperationsInput | number
    currentStock?: IntFieldUpdateOperationsInput | number
    imageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organizationId?: StringFieldUpdateOperationsInput | string
  }

  export type CategoryCreateInput = {
    id?: string
    name: string
    createdAt?: Date | string
    updatedAt?: Date | string
    products?: ProductCreateNestedManyWithoutCategoryInput
  }

  export type CategoryUncheckedCreateInput = {
    id?: string
    name: string
    createdAt?: Date | string
    updatedAt?: Date | string
    products?: ProductUncheckedCreateNestedManyWithoutCategoryInput
  }

  export type CategoryUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    products?: ProductUpdateManyWithoutCategoryNestedInput
  }

  export type CategoryUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    products?: ProductUncheckedUpdateManyWithoutCategoryNestedInput
  }

  export type CategoryCreateManyInput = {
    id?: string
    name: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type CategoryUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type CategoryUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ProductCreateInput = {
    id?: string
    name: string
    article: string
    description?: string | null
    price: Decimal | DecimalJsLike | number | string
    quantity?: number
    brand?: string | null
    color?: string | null
    size?: string | null
    weight?: Decimal | DecimalJsLike | number | string | null
    dimensions?: string | null
    material?: string | null
    images?: JsonNullValueInput | InputJsonValue
    mainImage?: string | null
    isActive?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    cartItems?: CartItemCreateNestedManyWithoutProductInput
    favorites?: FavoritesCreateNestedManyWithoutProductInput
    supplyOrderItems?: SupplyOrderItemCreateNestedManyWithoutProductInput
    category?: CategoryCreateNestedOneWithoutProductsInput
    organization: OrganizationCreateNestedOneWithoutProductsInput
  }

  export type ProductUncheckedCreateInput = {
    id?: string
    name: string
    article: string
    description?: string | null
    price: Decimal | DecimalJsLike | number | string
    quantity?: number
    categoryId?: string | null
    brand?: string | null
    color?: string | null
    size?: string | null
    weight?: Decimal | DecimalJsLike | number | string | null
    dimensions?: string | null
    material?: string | null
    images?: JsonNullValueInput | InputJsonValue
    mainImage?: string | null
    isActive?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    organizationId: string
    cartItems?: CartItemUncheckedCreateNestedManyWithoutProductInput
    favorites?: FavoritesUncheckedCreateNestedManyWithoutProductInput
    supplyOrderItems?: SupplyOrderItemUncheckedCreateNestedManyWithoutProductInput
  }

  export type ProductUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    article?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    price?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    quantity?: IntFieldUpdateOperationsInput | number
    brand?: NullableStringFieldUpdateOperationsInput | string | null
    color?: NullableStringFieldUpdateOperationsInput | string | null
    size?: NullableStringFieldUpdateOperationsInput | string | null
    weight?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    dimensions?: NullableStringFieldUpdateOperationsInput | string | null
    material?: NullableStringFieldUpdateOperationsInput | string | null
    images?: JsonNullValueInput | InputJsonValue
    mainImage?: NullableStringFieldUpdateOperationsInput | string | null
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    cartItems?: CartItemUpdateManyWithoutProductNestedInput
    favorites?: FavoritesUpdateManyWithoutProductNestedInput
    supplyOrderItems?: SupplyOrderItemUpdateManyWithoutProductNestedInput
    category?: CategoryUpdateOneWithoutProductsNestedInput
    organization?: OrganizationUpdateOneRequiredWithoutProductsNestedInput
  }

  export type ProductUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    article?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    price?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    quantity?: IntFieldUpdateOperationsInput | number
    categoryId?: NullableStringFieldUpdateOperationsInput | string | null
    brand?: NullableStringFieldUpdateOperationsInput | string | null
    color?: NullableStringFieldUpdateOperationsInput | string | null
    size?: NullableStringFieldUpdateOperationsInput | string | null
    weight?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    dimensions?: NullableStringFieldUpdateOperationsInput | string | null
    material?: NullableStringFieldUpdateOperationsInput | string | null
    images?: JsonNullValueInput | InputJsonValue
    mainImage?: NullableStringFieldUpdateOperationsInput | string | null
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organizationId?: StringFieldUpdateOperationsInput | string
    cartItems?: CartItemUncheckedUpdateManyWithoutProductNestedInput
    favorites?: FavoritesUncheckedUpdateManyWithoutProductNestedInput
    supplyOrderItems?: SupplyOrderItemUncheckedUpdateManyWithoutProductNestedInput
  }

  export type ProductCreateManyInput = {
    id?: string
    name: string
    article: string
    description?: string | null
    price: Decimal | DecimalJsLike | number | string
    quantity?: number
    categoryId?: string | null
    brand?: string | null
    color?: string | null
    size?: string | null
    weight?: Decimal | DecimalJsLike | number | string | null
    dimensions?: string | null
    material?: string | null
    images?: JsonNullValueInput | InputJsonValue
    mainImage?: string | null
    isActive?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    organizationId: string
  }

  export type ProductUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    article?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    price?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    quantity?: IntFieldUpdateOperationsInput | number
    brand?: NullableStringFieldUpdateOperationsInput | string | null
    color?: NullableStringFieldUpdateOperationsInput | string | null
    size?: NullableStringFieldUpdateOperationsInput | string | null
    weight?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    dimensions?: NullableStringFieldUpdateOperationsInput | string | null
    material?: NullableStringFieldUpdateOperationsInput | string | null
    images?: JsonNullValueInput | InputJsonValue
    mainImage?: NullableStringFieldUpdateOperationsInput | string | null
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ProductUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    article?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    price?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    quantity?: IntFieldUpdateOperationsInput | number
    categoryId?: NullableStringFieldUpdateOperationsInput | string | null
    brand?: NullableStringFieldUpdateOperationsInput | string | null
    color?: NullableStringFieldUpdateOperationsInput | string | null
    size?: NullableStringFieldUpdateOperationsInput | string | null
    weight?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    dimensions?: NullableStringFieldUpdateOperationsInput | string | null
    material?: NullableStringFieldUpdateOperationsInput | string | null
    images?: JsonNullValueInput | InputJsonValue
    mainImage?: NullableStringFieldUpdateOperationsInput | string | null
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organizationId?: StringFieldUpdateOperationsInput | string
  }

  export type CartCreateInput = {
    id?: string
    createdAt?: Date | string
    updatedAt?: Date | string
    items?: CartItemCreateNestedManyWithoutCartInput
    organization: OrganizationCreateNestedOneWithoutCartsInput
  }

  export type CartUncheckedCreateInput = {
    id?: string
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    items?: CartItemUncheckedCreateNestedManyWithoutCartInput
  }

  export type CartUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    items?: CartItemUpdateManyWithoutCartNestedInput
    organization?: OrganizationUpdateOneRequiredWithoutCartsNestedInput
  }

  export type CartUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    items?: CartItemUncheckedUpdateManyWithoutCartNestedInput
  }

  export type CartCreateManyInput = {
    id?: string
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type CartUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type CartUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type CartItemCreateInput = {
    id?: string
    quantity?: number
    createdAt?: Date | string
    updatedAt?: Date | string
    cart: CartCreateNestedOneWithoutItemsInput
    product: ProductCreateNestedOneWithoutCartItemsInput
  }

  export type CartItemUncheckedCreateInput = {
    id?: string
    cartId: string
    productId: string
    quantity?: number
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type CartItemUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    quantity?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    cart?: CartUpdateOneRequiredWithoutItemsNestedInput
    product?: ProductUpdateOneRequiredWithoutCartItemsNestedInput
  }

  export type CartItemUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    cartId?: StringFieldUpdateOperationsInput | string
    productId?: StringFieldUpdateOperationsInput | string
    quantity?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type CartItemCreateManyInput = {
    id?: string
    cartId: string
    productId: string
    quantity?: number
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type CartItemUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    quantity?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type CartItemUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    cartId?: StringFieldUpdateOperationsInput | string
    productId?: StringFieldUpdateOperationsInput | string
    quantity?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type FavoritesCreateInput = {
    id?: string
    createdAt?: Date | string
    updatedAt?: Date | string
    organization: OrganizationCreateNestedOneWithoutFavoritesInput
    product: ProductCreateNestedOneWithoutFavoritesInput
  }

  export type FavoritesUncheckedCreateInput = {
    id?: string
    organizationId: string
    productId: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type FavoritesUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organization?: OrganizationUpdateOneRequiredWithoutFavoritesNestedInput
    product?: ProductUpdateOneRequiredWithoutFavoritesNestedInput
  }

  export type FavoritesUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    productId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type FavoritesCreateManyInput = {
    id?: string
    organizationId: string
    productId: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type FavoritesUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type FavoritesUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    productId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type EmployeeCreateInput = {
    id?: string
    firstName: string
    lastName: string
    middleName?: string | null
    birthDate?: Date | string | null
    avatar?: string | null
    passportPhoto?: string | null
    passportSeries?: string | null
    passportNumber?: string | null
    passportIssued?: string | null
    passportDate?: Date | string | null
    address?: string | null
    position: string
    department?: string | null
    hireDate: Date | string
    salary?: number | null
    status?: $Enums.EmployeeStatus
    phone: string
    email?: string | null
    telegram?: string | null
    whatsapp?: string | null
    emergencyContact?: string | null
    emergencyPhone?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    scheduleRecords?: EmployeeScheduleCreateNestedManyWithoutEmployeeInput
    organization: OrganizationCreateNestedOneWithoutEmployeesInput
  }

  export type EmployeeUncheckedCreateInput = {
    id?: string
    firstName: string
    lastName: string
    middleName?: string | null
    birthDate?: Date | string | null
    avatar?: string | null
    passportPhoto?: string | null
    passportSeries?: string | null
    passportNumber?: string | null
    passportIssued?: string | null
    passportDate?: Date | string | null
    address?: string | null
    position: string
    department?: string | null
    hireDate: Date | string
    salary?: number | null
    status?: $Enums.EmployeeStatus
    phone: string
    email?: string | null
    telegram?: string | null
    whatsapp?: string | null
    emergencyContact?: string | null
    emergencyPhone?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    scheduleRecords?: EmployeeScheduleUncheckedCreateNestedManyWithoutEmployeeInput
  }

  export type EmployeeUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    firstName?: StringFieldUpdateOperationsInput | string
    lastName?: StringFieldUpdateOperationsInput | string
    middleName?: NullableStringFieldUpdateOperationsInput | string | null
    birthDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    passportPhoto?: NullableStringFieldUpdateOperationsInput | string | null
    passportSeries?: NullableStringFieldUpdateOperationsInput | string | null
    passportNumber?: NullableStringFieldUpdateOperationsInput | string | null
    passportIssued?: NullableStringFieldUpdateOperationsInput | string | null
    passportDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    position?: StringFieldUpdateOperationsInput | string
    department?: NullableStringFieldUpdateOperationsInput | string | null
    hireDate?: DateTimeFieldUpdateOperationsInput | Date | string
    salary?: NullableFloatFieldUpdateOperationsInput | number | null
    status?: EnumEmployeeStatusFieldUpdateOperationsInput | $Enums.EmployeeStatus
    phone?: StringFieldUpdateOperationsInput | string
    email?: NullableStringFieldUpdateOperationsInput | string | null
    telegram?: NullableStringFieldUpdateOperationsInput | string | null
    whatsapp?: NullableStringFieldUpdateOperationsInput | string | null
    emergencyContact?: NullableStringFieldUpdateOperationsInput | string | null
    emergencyPhone?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    scheduleRecords?: EmployeeScheduleUpdateManyWithoutEmployeeNestedInput
    organization?: OrganizationUpdateOneRequiredWithoutEmployeesNestedInput
  }

  export type EmployeeUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    firstName?: StringFieldUpdateOperationsInput | string
    lastName?: StringFieldUpdateOperationsInput | string
    middleName?: NullableStringFieldUpdateOperationsInput | string | null
    birthDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    passportPhoto?: NullableStringFieldUpdateOperationsInput | string | null
    passportSeries?: NullableStringFieldUpdateOperationsInput | string | null
    passportNumber?: NullableStringFieldUpdateOperationsInput | string | null
    passportIssued?: NullableStringFieldUpdateOperationsInput | string | null
    passportDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    position?: StringFieldUpdateOperationsInput | string
    department?: NullableStringFieldUpdateOperationsInput | string | null
    hireDate?: DateTimeFieldUpdateOperationsInput | Date | string
    salary?: NullableFloatFieldUpdateOperationsInput | number | null
    status?: EnumEmployeeStatusFieldUpdateOperationsInput | $Enums.EmployeeStatus
    phone?: StringFieldUpdateOperationsInput | string
    email?: NullableStringFieldUpdateOperationsInput | string | null
    telegram?: NullableStringFieldUpdateOperationsInput | string | null
    whatsapp?: NullableStringFieldUpdateOperationsInput | string | null
    emergencyContact?: NullableStringFieldUpdateOperationsInput | string | null
    emergencyPhone?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    scheduleRecords?: EmployeeScheduleUncheckedUpdateManyWithoutEmployeeNestedInput
  }

  export type EmployeeCreateManyInput = {
    id?: string
    firstName: string
    lastName: string
    middleName?: string | null
    birthDate?: Date | string | null
    avatar?: string | null
    passportPhoto?: string | null
    passportSeries?: string | null
    passportNumber?: string | null
    passportIssued?: string | null
    passportDate?: Date | string | null
    address?: string | null
    position: string
    department?: string | null
    hireDate: Date | string
    salary?: number | null
    status?: $Enums.EmployeeStatus
    phone: string
    email?: string | null
    telegram?: string | null
    whatsapp?: string | null
    emergencyContact?: string | null
    emergencyPhone?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type EmployeeUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    firstName?: StringFieldUpdateOperationsInput | string
    lastName?: StringFieldUpdateOperationsInput | string
    middleName?: NullableStringFieldUpdateOperationsInput | string | null
    birthDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    passportPhoto?: NullableStringFieldUpdateOperationsInput | string | null
    passportSeries?: NullableStringFieldUpdateOperationsInput | string | null
    passportNumber?: NullableStringFieldUpdateOperationsInput | string | null
    passportIssued?: NullableStringFieldUpdateOperationsInput | string | null
    passportDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    position?: StringFieldUpdateOperationsInput | string
    department?: NullableStringFieldUpdateOperationsInput | string | null
    hireDate?: DateTimeFieldUpdateOperationsInput | Date | string
    salary?: NullableFloatFieldUpdateOperationsInput | number | null
    status?: EnumEmployeeStatusFieldUpdateOperationsInput | $Enums.EmployeeStatus
    phone?: StringFieldUpdateOperationsInput | string
    email?: NullableStringFieldUpdateOperationsInput | string | null
    telegram?: NullableStringFieldUpdateOperationsInput | string | null
    whatsapp?: NullableStringFieldUpdateOperationsInput | string | null
    emergencyContact?: NullableStringFieldUpdateOperationsInput | string | null
    emergencyPhone?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type EmployeeUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    firstName?: StringFieldUpdateOperationsInput | string
    lastName?: StringFieldUpdateOperationsInput | string
    middleName?: NullableStringFieldUpdateOperationsInput | string | null
    birthDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    passportPhoto?: NullableStringFieldUpdateOperationsInput | string | null
    passportSeries?: NullableStringFieldUpdateOperationsInput | string | null
    passportNumber?: NullableStringFieldUpdateOperationsInput | string | null
    passportIssued?: NullableStringFieldUpdateOperationsInput | string | null
    passportDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    position?: StringFieldUpdateOperationsInput | string
    department?: NullableStringFieldUpdateOperationsInput | string | null
    hireDate?: DateTimeFieldUpdateOperationsInput | Date | string
    salary?: NullableFloatFieldUpdateOperationsInput | number | null
    status?: EnumEmployeeStatusFieldUpdateOperationsInput | $Enums.EmployeeStatus
    phone?: StringFieldUpdateOperationsInput | string
    email?: NullableStringFieldUpdateOperationsInput | string | null
    telegram?: NullableStringFieldUpdateOperationsInput | string | null
    whatsapp?: NullableStringFieldUpdateOperationsInput | string | null
    emergencyContact?: NullableStringFieldUpdateOperationsInput | string | null
    emergencyPhone?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type EmployeeScheduleCreateInput = {
    id?: string
    date: Date | string
    status: $Enums.ScheduleStatus
    hoursWorked?: number | null
    notes?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    employee: EmployeeCreateNestedOneWithoutScheduleRecordsInput
  }

  export type EmployeeScheduleUncheckedCreateInput = {
    id?: string
    date: Date | string
    status: $Enums.ScheduleStatus
    hoursWorked?: number | null
    notes?: string | null
    employeeId: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type EmployeeScheduleUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    date?: DateTimeFieldUpdateOperationsInput | Date | string
    status?: EnumScheduleStatusFieldUpdateOperationsInput | $Enums.ScheduleStatus
    hoursWorked?: NullableFloatFieldUpdateOperationsInput | number | null
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    employee?: EmployeeUpdateOneRequiredWithoutScheduleRecordsNestedInput
  }

  export type EmployeeScheduleUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    date?: DateTimeFieldUpdateOperationsInput | Date | string
    status?: EnumScheduleStatusFieldUpdateOperationsInput | $Enums.ScheduleStatus
    hoursWorked?: NullableFloatFieldUpdateOperationsInput | number | null
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type EmployeeScheduleCreateManyInput = {
    id?: string
    date: Date | string
    status: $Enums.ScheduleStatus
    hoursWorked?: number | null
    notes?: string | null
    employeeId: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type EmployeeScheduleUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    date?: DateTimeFieldUpdateOperationsInput | Date | string
    status?: EnumScheduleStatusFieldUpdateOperationsInput | $Enums.ScheduleStatus
    hoursWorked?: NullableFloatFieldUpdateOperationsInput | number | null
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type EmployeeScheduleUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    date?: DateTimeFieldUpdateOperationsInput | Date | string
    status?: EnumScheduleStatusFieldUpdateOperationsInput | $Enums.ScheduleStatus
    hoursWorked?: NullableFloatFieldUpdateOperationsInput | number | null
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type WildberriesSupplyCreateInput = {
    id?: string
    deliveryDate?: Date | string | null
    status?: $Enums.WildberriesSupplyStatus
    totalAmount: Decimal | DecimalJsLike | number | string
    totalItems: number
    createdAt?: Date | string
    updatedAt?: Date | string
    organization: OrganizationCreateNestedOneWithoutWildberriesSuppliesInput
    cards?: WildberriesSupplyCardCreateNestedManyWithoutSupplyInput
  }

  export type WildberriesSupplyUncheckedCreateInput = {
    id?: string
    organizationId: string
    deliveryDate?: Date | string | null
    status?: $Enums.WildberriesSupplyStatus
    totalAmount: Decimal | DecimalJsLike | number | string
    totalItems: number
    createdAt?: Date | string
    updatedAt?: Date | string
    cards?: WildberriesSupplyCardUncheckedCreateNestedManyWithoutSupplyInput
  }

  export type WildberriesSupplyUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    deliveryDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    status?: EnumWildberriesSupplyStatusFieldUpdateOperationsInput | $Enums.WildberriesSupplyStatus
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    totalItems?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organization?: OrganizationUpdateOneRequiredWithoutWildberriesSuppliesNestedInput
    cards?: WildberriesSupplyCardUpdateManyWithoutSupplyNestedInput
  }

  export type WildberriesSupplyUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    deliveryDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    status?: EnumWildberriesSupplyStatusFieldUpdateOperationsInput | $Enums.WildberriesSupplyStatus
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    totalItems?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    cards?: WildberriesSupplyCardUncheckedUpdateManyWithoutSupplyNestedInput
  }

  export type WildberriesSupplyCreateManyInput = {
    id?: string
    organizationId: string
    deliveryDate?: Date | string | null
    status?: $Enums.WildberriesSupplyStatus
    totalAmount: Decimal | DecimalJsLike | number | string
    totalItems: number
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type WildberriesSupplyUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    deliveryDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    status?: EnumWildberriesSupplyStatusFieldUpdateOperationsInput | $Enums.WildberriesSupplyStatus
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    totalItems?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type WildberriesSupplyUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    deliveryDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    status?: EnumWildberriesSupplyStatusFieldUpdateOperationsInput | $Enums.WildberriesSupplyStatus
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    totalItems?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type WildberriesSupplyCardCreateInput = {
    id?: string
    nmId: string
    vendorCode: string
    title: string
    brand?: string | null
    price: Decimal | DecimalJsLike | number | string
    discountedPrice?: Decimal | DecimalJsLike | number | string | null
    quantity: number
    selectedQuantity: number
    selectedMarket?: string | null
    selectedPlace?: string | null
    sellerName?: string | null
    sellerPhone?: string | null
    deliveryDate?: Date | string | null
    mediaFiles?: JsonNullValueInput | InputJsonValue
    selectedServices?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    supply: WildberriesSupplyCreateNestedOneWithoutCardsInput
  }

  export type WildberriesSupplyCardUncheckedCreateInput = {
    id?: string
    supplyId: string
    nmId: string
    vendorCode: string
    title: string
    brand?: string | null
    price: Decimal | DecimalJsLike | number | string
    discountedPrice?: Decimal | DecimalJsLike | number | string | null
    quantity: number
    selectedQuantity: number
    selectedMarket?: string | null
    selectedPlace?: string | null
    sellerName?: string | null
    sellerPhone?: string | null
    deliveryDate?: Date | string | null
    mediaFiles?: JsonNullValueInput | InputJsonValue
    selectedServices?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type WildberriesSupplyCardUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    nmId?: StringFieldUpdateOperationsInput | string
    vendorCode?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    brand?: NullableStringFieldUpdateOperationsInput | string | null
    price?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    discountedPrice?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    quantity?: IntFieldUpdateOperationsInput | number
    selectedQuantity?: IntFieldUpdateOperationsInput | number
    selectedMarket?: NullableStringFieldUpdateOperationsInput | string | null
    selectedPlace?: NullableStringFieldUpdateOperationsInput | string | null
    sellerName?: NullableStringFieldUpdateOperationsInput | string | null
    sellerPhone?: NullableStringFieldUpdateOperationsInput | string | null
    deliveryDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    mediaFiles?: JsonNullValueInput | InputJsonValue
    selectedServices?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    supply?: WildberriesSupplyUpdateOneRequiredWithoutCardsNestedInput
  }

  export type WildberriesSupplyCardUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    supplyId?: StringFieldUpdateOperationsInput | string
    nmId?: StringFieldUpdateOperationsInput | string
    vendorCode?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    brand?: NullableStringFieldUpdateOperationsInput | string | null
    price?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    discountedPrice?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    quantity?: IntFieldUpdateOperationsInput | number
    selectedQuantity?: IntFieldUpdateOperationsInput | number
    selectedMarket?: NullableStringFieldUpdateOperationsInput | string | null
    selectedPlace?: NullableStringFieldUpdateOperationsInput | string | null
    sellerName?: NullableStringFieldUpdateOperationsInput | string | null
    sellerPhone?: NullableStringFieldUpdateOperationsInput | string | null
    deliveryDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    mediaFiles?: JsonNullValueInput | InputJsonValue
    selectedServices?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type WildberriesSupplyCardCreateManyInput = {
    id?: string
    supplyId: string
    nmId: string
    vendorCode: string
    title: string
    brand?: string | null
    price: Decimal | DecimalJsLike | number | string
    discountedPrice?: Decimal | DecimalJsLike | number | string | null
    quantity: number
    selectedQuantity: number
    selectedMarket?: string | null
    selectedPlace?: string | null
    sellerName?: string | null
    sellerPhone?: string | null
    deliveryDate?: Date | string | null
    mediaFiles?: JsonNullValueInput | InputJsonValue
    selectedServices?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type WildberriesSupplyCardUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    nmId?: StringFieldUpdateOperationsInput | string
    vendorCode?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    brand?: NullableStringFieldUpdateOperationsInput | string | null
    price?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    discountedPrice?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    quantity?: IntFieldUpdateOperationsInput | number
    selectedQuantity?: IntFieldUpdateOperationsInput | number
    selectedMarket?: NullableStringFieldUpdateOperationsInput | string | null
    selectedPlace?: NullableStringFieldUpdateOperationsInput | string | null
    sellerName?: NullableStringFieldUpdateOperationsInput | string | null
    sellerPhone?: NullableStringFieldUpdateOperationsInput | string | null
    deliveryDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    mediaFiles?: JsonNullValueInput | InputJsonValue
    selectedServices?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type WildberriesSupplyCardUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    supplyId?: StringFieldUpdateOperationsInput | string
    nmId?: StringFieldUpdateOperationsInput | string
    vendorCode?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    brand?: NullableStringFieldUpdateOperationsInput | string | null
    price?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    discountedPrice?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    quantity?: IntFieldUpdateOperationsInput | number
    selectedQuantity?: IntFieldUpdateOperationsInput | number
    selectedMarket?: NullableStringFieldUpdateOperationsInput | string | null
    selectedPlace?: NullableStringFieldUpdateOperationsInput | string | null
    sellerName?: NullableStringFieldUpdateOperationsInput | string | null
    sellerPhone?: NullableStringFieldUpdateOperationsInput | string | null
    deliveryDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    mediaFiles?: JsonNullValueInput | InputJsonValue
    selectedServices?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type LogisticsCreateInput = {
    id?: string
    fromLocation: string
    toLocation: string
    priceUnder1m3: number
    priceOver1m3: number
    description?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    organization: OrganizationCreateNestedOneWithoutLogisticsInput
  }

  export type LogisticsUncheckedCreateInput = {
    id?: string
    fromLocation: string
    toLocation: string
    priceUnder1m3: number
    priceOver1m3: number
    description?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    organizationId: string
  }

  export type LogisticsUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    fromLocation?: StringFieldUpdateOperationsInput | string
    toLocation?: StringFieldUpdateOperationsInput | string
    priceUnder1m3?: FloatFieldUpdateOperationsInput | number
    priceOver1m3?: FloatFieldUpdateOperationsInput | number
    description?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organization?: OrganizationUpdateOneRequiredWithoutLogisticsNestedInput
  }

  export type LogisticsUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    fromLocation?: StringFieldUpdateOperationsInput | string
    toLocation?: StringFieldUpdateOperationsInput | string
    priceUnder1m3?: FloatFieldUpdateOperationsInput | number
    priceOver1m3?: FloatFieldUpdateOperationsInput | number
    description?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organizationId?: StringFieldUpdateOperationsInput | string
  }

  export type LogisticsCreateManyInput = {
    id?: string
    fromLocation: string
    toLocation: string
    priceUnder1m3: number
    priceOver1m3: number
    description?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    organizationId: string
  }

  export type LogisticsUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    fromLocation?: StringFieldUpdateOperationsInput | string
    toLocation?: StringFieldUpdateOperationsInput | string
    priceUnder1m3?: FloatFieldUpdateOperationsInput | number
    priceOver1m3?: FloatFieldUpdateOperationsInput | number
    description?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type LogisticsUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    fromLocation?: StringFieldUpdateOperationsInput | string
    toLocation?: StringFieldUpdateOperationsInput | string
    priceUnder1m3?: FloatFieldUpdateOperationsInput | number
    priceOver1m3?: FloatFieldUpdateOperationsInput | number
    description?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organizationId?: StringFieldUpdateOperationsInput | string
  }

  export type SupplyOrderCreateInput = {
    id?: string
    deliveryDate: Date | string
    status?: $Enums.SupplyOrderStatus
    totalAmount: Decimal | DecimalJsLike | number | string
    totalItems: number
    createdAt?: Date | string
    updatedAt?: Date | string
    items?: SupplyOrderItemCreateNestedManyWithoutSupplyOrderInput
    organization: OrganizationCreateNestedOneWithoutSupplyOrdersInput
    partner: OrganizationCreateNestedOneWithoutPartnerSupplyOrdersInput
    fulfillmentCenter?: OrganizationCreateNestedOneWithoutFulfillmentSupplyOrdersInput
  }

  export type SupplyOrderUncheckedCreateInput = {
    id?: string
    partnerId: string
    deliveryDate: Date | string
    status?: $Enums.SupplyOrderStatus
    totalAmount: Decimal | DecimalJsLike | number | string
    totalItems: number
    fulfillmentCenterId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    organizationId: string
    items?: SupplyOrderItemUncheckedCreateNestedManyWithoutSupplyOrderInput
  }

  export type SupplyOrderUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    deliveryDate?: DateTimeFieldUpdateOperationsInput | Date | string
    status?: EnumSupplyOrderStatusFieldUpdateOperationsInput | $Enums.SupplyOrderStatus
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    totalItems?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    items?: SupplyOrderItemUpdateManyWithoutSupplyOrderNestedInput
    organization?: OrganizationUpdateOneRequiredWithoutSupplyOrdersNestedInput
    partner?: OrganizationUpdateOneRequiredWithoutPartnerSupplyOrdersNestedInput
    fulfillmentCenter?: OrganizationUpdateOneWithoutFulfillmentSupplyOrdersNestedInput
  }

  export type SupplyOrderUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    partnerId?: StringFieldUpdateOperationsInput | string
    deliveryDate?: DateTimeFieldUpdateOperationsInput | Date | string
    status?: EnumSupplyOrderStatusFieldUpdateOperationsInput | $Enums.SupplyOrderStatus
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    totalItems?: IntFieldUpdateOperationsInput | number
    fulfillmentCenterId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organizationId?: StringFieldUpdateOperationsInput | string
    items?: SupplyOrderItemUncheckedUpdateManyWithoutSupplyOrderNestedInput
  }

  export type SupplyOrderCreateManyInput = {
    id?: string
    partnerId: string
    deliveryDate: Date | string
    status?: $Enums.SupplyOrderStatus
    totalAmount: Decimal | DecimalJsLike | number | string
    totalItems: number
    fulfillmentCenterId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    organizationId: string
  }

  export type SupplyOrderUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    deliveryDate?: DateTimeFieldUpdateOperationsInput | Date | string
    status?: EnumSupplyOrderStatusFieldUpdateOperationsInput | $Enums.SupplyOrderStatus
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    totalItems?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SupplyOrderUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    partnerId?: StringFieldUpdateOperationsInput | string
    deliveryDate?: DateTimeFieldUpdateOperationsInput | Date | string
    status?: EnumSupplyOrderStatusFieldUpdateOperationsInput | $Enums.SupplyOrderStatus
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    totalItems?: IntFieldUpdateOperationsInput | number
    fulfillmentCenterId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organizationId?: StringFieldUpdateOperationsInput | string
  }

  export type SupplyOrderItemCreateInput = {
    id?: string
    quantity: number
    price: Decimal | DecimalJsLike | number | string
    totalPrice: Decimal | DecimalJsLike | number | string
    createdAt?: Date | string
    updatedAt?: Date | string
    supplyOrder: SupplyOrderCreateNestedOneWithoutItemsInput
    product: ProductCreateNestedOneWithoutSupplyOrderItemsInput
  }

  export type SupplyOrderItemUncheckedCreateInput = {
    id?: string
    supplyOrderId: string
    productId: string
    quantity: number
    price: Decimal | DecimalJsLike | number | string
    totalPrice: Decimal | DecimalJsLike | number | string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type SupplyOrderItemUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    quantity?: IntFieldUpdateOperationsInput | number
    price?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    totalPrice?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    supplyOrder?: SupplyOrderUpdateOneRequiredWithoutItemsNestedInput
    product?: ProductUpdateOneRequiredWithoutSupplyOrderItemsNestedInput
  }

  export type SupplyOrderItemUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    supplyOrderId?: StringFieldUpdateOperationsInput | string
    productId?: StringFieldUpdateOperationsInput | string
    quantity?: IntFieldUpdateOperationsInput | number
    price?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    totalPrice?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SupplyOrderItemCreateManyInput = {
    id?: string
    supplyOrderId: string
    productId: string
    quantity: number
    price: Decimal | DecimalJsLike | number | string
    totalPrice: Decimal | DecimalJsLike | number | string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type SupplyOrderItemUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    quantity?: IntFieldUpdateOperationsInput | number
    price?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    totalPrice?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SupplyOrderItemUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    supplyOrderId?: StringFieldUpdateOperationsInput | string
    productId?: StringFieldUpdateOperationsInput | string
    quantity?: IntFieldUpdateOperationsInput | number
    price?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    totalPrice?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SupplySupplierCreateInput = {
    id?: string
    name: string
    contactName: string
    phone: string
    market?: string | null
    address?: string | null
    place?: string | null
    telegram?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    organization: OrganizationCreateNestedOneWithoutSupplySuppliersInput
  }

  export type SupplySupplierUncheckedCreateInput = {
    id?: string
    name: string
    contactName: string
    phone: string
    market?: string | null
    address?: string | null
    place?: string | null
    telegram?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type SupplySupplierUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    contactName?: StringFieldUpdateOperationsInput | string
    phone?: StringFieldUpdateOperationsInput | string
    market?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    place?: NullableStringFieldUpdateOperationsInput | string | null
    telegram?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organization?: OrganizationUpdateOneRequiredWithoutSupplySuppliersNestedInput
  }

  export type SupplySupplierUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    contactName?: StringFieldUpdateOperationsInput | string
    phone?: StringFieldUpdateOperationsInput | string
    market?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    place?: NullableStringFieldUpdateOperationsInput | string | null
    telegram?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SupplySupplierCreateManyInput = {
    id?: string
    name: string
    contactName: string
    phone: string
    market?: string | null
    address?: string | null
    place?: string | null
    telegram?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type SupplySupplierUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    contactName?: StringFieldUpdateOperationsInput | string
    phone?: StringFieldUpdateOperationsInput | string
    market?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    place?: NullableStringFieldUpdateOperationsInput | string | null
    telegram?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SupplySupplierUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    contactName?: StringFieldUpdateOperationsInput | string
    phone?: StringFieldUpdateOperationsInput | string
    market?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    place?: NullableStringFieldUpdateOperationsInput | string | null
    telegram?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type StringFilter<$PrismaModel = never> = {
    equals?: string | StringFieldRefInput<$PrismaModel>
    in?: string[] | ListStringFieldRefInput<$PrismaModel>
    notIn?: string[] | ListStringFieldRefInput<$PrismaModel>
    lt?: string | StringFieldRefInput<$PrismaModel>
    lte?: string | StringFieldRefInput<$PrismaModel>
    gt?: string | StringFieldRefInput<$PrismaModel>
    gte?: string | StringFieldRefInput<$PrismaModel>
    contains?: string | StringFieldRefInput<$PrismaModel>
    startsWith?: string | StringFieldRefInput<$PrismaModel>
    endsWith?: string | StringFieldRefInput<$PrismaModel>
    mode?: QueryMode
    not?: NestedStringFilter<$PrismaModel> | string
  }

  export type StringNullableFilter<$PrismaModel = never> = {
    equals?: string | StringFieldRefInput<$PrismaModel> | null
    in?: string[] | ListStringFieldRefInput<$PrismaModel> | null
    notIn?: string[] | ListStringFieldRefInput<$PrismaModel> | null
    lt?: string | StringFieldRefInput<$PrismaModel>
    lte?: string | StringFieldRefInput<$PrismaModel>
    gt?: string | StringFieldRefInput<$PrismaModel>
    gte?: string | StringFieldRefInput<$PrismaModel>
    contains?: string | StringFieldRefInput<$PrismaModel>
    startsWith?: string | StringFieldRefInput<$PrismaModel>
    endsWith?: string | StringFieldRefInput<$PrismaModel>
    mode?: QueryMode
    not?: NestedStringNullableFilter<$PrismaModel> | string | null
  }

  export type DateTimeFilter<$PrismaModel = never> = {
    equals?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel>
    notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel>
    lt?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    lte?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    gt?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    gte?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    not?: NestedDateTimeFilter<$PrismaModel> | Date | string
  }

  export type MessageListRelationFilter = {
    every?: MessageWhereInput
    some?: MessageWhereInput
    none?: MessageWhereInput
  }

  export type SmsCodeListRelationFilter = {
    every?: SmsCodeWhereInput
    some?: SmsCodeWhereInput
    none?: SmsCodeWhereInput
  }

  export type OrganizationNullableScalarRelationFilter = {
    is?: OrganizationWhereInput | null
    isNot?: OrganizationWhereInput | null
  }

  export type SortOrderInput = {
    sort: SortOrder
    nulls?: NullsOrder
  }

  export type MessageOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type SmsCodeOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type UserCountOrderByAggregateInput = {
    id?: SortOrder
    phone?: SortOrder
    avatar?: SortOrder
    managerName?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    organizationId?: SortOrder
  }

  export type UserMaxOrderByAggregateInput = {
    id?: SortOrder
    phone?: SortOrder
    avatar?: SortOrder
    managerName?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    organizationId?: SortOrder
  }

  export type UserMinOrderByAggregateInput = {
    id?: SortOrder
    phone?: SortOrder
    avatar?: SortOrder
    managerName?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    organizationId?: SortOrder
  }

  export type StringWithAggregatesFilter<$PrismaModel = never> = {
    equals?: string | StringFieldRefInput<$PrismaModel>
    in?: string[] | ListStringFieldRefInput<$PrismaModel>
    notIn?: string[] | ListStringFieldRefInput<$PrismaModel>
    lt?: string | StringFieldRefInput<$PrismaModel>
    lte?: string | StringFieldRefInput<$PrismaModel>
    gt?: string | StringFieldRefInput<$PrismaModel>
    gte?: string | StringFieldRefInput<$PrismaModel>
    contains?: string | StringFieldRefInput<$PrismaModel>
    startsWith?: string | StringFieldRefInput<$PrismaModel>
    endsWith?: string | StringFieldRefInput<$PrismaModel>
    mode?: QueryMode
    not?: NestedStringWithAggregatesFilter<$PrismaModel> | string
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedStringFilter<$PrismaModel>
    _max?: NestedStringFilter<$PrismaModel>
  }

  export type StringNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: string | StringFieldRefInput<$PrismaModel> | null
    in?: string[] | ListStringFieldRefInput<$PrismaModel> | null
    notIn?: string[] | ListStringFieldRefInput<$PrismaModel> | null
    lt?: string | StringFieldRefInput<$PrismaModel>
    lte?: string | StringFieldRefInput<$PrismaModel>
    gt?: string | StringFieldRefInput<$PrismaModel>
    gte?: string | StringFieldRefInput<$PrismaModel>
    contains?: string | StringFieldRefInput<$PrismaModel>
    startsWith?: string | StringFieldRefInput<$PrismaModel>
    endsWith?: string | StringFieldRefInput<$PrismaModel>
    mode?: QueryMode
    not?: NestedStringNullableWithAggregatesFilter<$PrismaModel> | string | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedStringNullableFilter<$PrismaModel>
    _max?: NestedStringNullableFilter<$PrismaModel>
  }

  export type DateTimeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel>
    notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel>
    lt?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    lte?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    gt?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    gte?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    not?: NestedDateTimeWithAggregatesFilter<$PrismaModel> | Date | string
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedDateTimeFilter<$PrismaModel>
    _max?: NestedDateTimeFilter<$PrismaModel>
  }

  export type BoolFilter<$PrismaModel = never> = {
    equals?: boolean | BooleanFieldRefInput<$PrismaModel>
    not?: NestedBoolFilter<$PrismaModel> | boolean
  }

  export type DateTimeNullableFilter<$PrismaModel = never> = {
    equals?: Date | string | DateTimeFieldRefInput<$PrismaModel> | null
    in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> | null
    notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> | null
    lt?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    lte?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    gt?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    gte?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    not?: NestedDateTimeNullableFilter<$PrismaModel> | Date | string | null
  }

  export type AdminCountOrderByAggregateInput = {
    id?: SortOrder
    username?: SortOrder
    password?: SortOrder
    email?: SortOrder
    isActive?: SortOrder
    lastLogin?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AdminMaxOrderByAggregateInput = {
    id?: SortOrder
    username?: SortOrder
    password?: SortOrder
    email?: SortOrder
    isActive?: SortOrder
    lastLogin?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AdminMinOrderByAggregateInput = {
    id?: SortOrder
    username?: SortOrder
    password?: SortOrder
    email?: SortOrder
    isActive?: SortOrder
    lastLogin?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type BoolWithAggregatesFilter<$PrismaModel = never> = {
    equals?: boolean | BooleanFieldRefInput<$PrismaModel>
    not?: NestedBoolWithAggregatesFilter<$PrismaModel> | boolean
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedBoolFilter<$PrismaModel>
    _max?: NestedBoolFilter<$PrismaModel>
  }

  export type DateTimeNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: Date | string | DateTimeFieldRefInput<$PrismaModel> | null
    in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> | null
    notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> | null
    lt?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    lte?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    gt?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    gte?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    not?: NestedDateTimeNullableWithAggregatesFilter<$PrismaModel> | Date | string | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedDateTimeNullableFilter<$PrismaModel>
    _max?: NestedDateTimeNullableFilter<$PrismaModel>
  }

  export type IntFilter<$PrismaModel = never> = {
    equals?: number | IntFieldRefInput<$PrismaModel>
    in?: number[] | ListIntFieldRefInput<$PrismaModel>
    notIn?: number[] | ListIntFieldRefInput<$PrismaModel>
    lt?: number | IntFieldRefInput<$PrismaModel>
    lte?: number | IntFieldRefInput<$PrismaModel>
    gt?: number | IntFieldRefInput<$PrismaModel>
    gte?: number | IntFieldRefInput<$PrismaModel>
    not?: NestedIntFilter<$PrismaModel> | number
  }

  export type UserNullableScalarRelationFilter = {
    is?: UserWhereInput | null
    isNot?: UserWhereInput | null
  }

  export type SmsCodeCountOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    phone?: SortOrder
    expiresAt?: SortOrder
    isUsed?: SortOrder
    attempts?: SortOrder
    maxAttempts?: SortOrder
    createdAt?: SortOrder
    userId?: SortOrder
  }

  export type SmsCodeAvgOrderByAggregateInput = {
    attempts?: SortOrder
    maxAttempts?: SortOrder
  }

  export type SmsCodeMaxOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    phone?: SortOrder
    expiresAt?: SortOrder
    isUsed?: SortOrder
    attempts?: SortOrder
    maxAttempts?: SortOrder
    createdAt?: SortOrder
    userId?: SortOrder
  }

  export type SmsCodeMinOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    phone?: SortOrder
    expiresAt?: SortOrder
    isUsed?: SortOrder
    attempts?: SortOrder
    maxAttempts?: SortOrder
    createdAt?: SortOrder
    userId?: SortOrder
  }

  export type SmsCodeSumOrderByAggregateInput = {
    attempts?: SortOrder
    maxAttempts?: SortOrder
  }

  export type IntWithAggregatesFilter<$PrismaModel = never> = {
    equals?: number | IntFieldRefInput<$PrismaModel>
    in?: number[] | ListIntFieldRefInput<$PrismaModel>
    notIn?: number[] | ListIntFieldRefInput<$PrismaModel>
    lt?: number | IntFieldRefInput<$PrismaModel>
    lte?: number | IntFieldRefInput<$PrismaModel>
    gt?: number | IntFieldRefInput<$PrismaModel>
    gte?: number | IntFieldRefInput<$PrismaModel>
    not?: NestedIntWithAggregatesFilter<$PrismaModel> | number
    _count?: NestedIntFilter<$PrismaModel>
    _avg?: NestedFloatFilter<$PrismaModel>
    _sum?: NestedIntFilter<$PrismaModel>
    _min?: NestedIntFilter<$PrismaModel>
    _max?: NestedIntFilter<$PrismaModel>
  }

  export type EnumOrganizationTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.OrganizationType | EnumOrganizationTypeFieldRefInput<$PrismaModel>
    in?: $Enums.OrganizationType[] | ListEnumOrganizationTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.OrganizationType[] | ListEnumOrganizationTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumOrganizationTypeFilter<$PrismaModel> | $Enums.OrganizationType
  }
  export type JsonNullableFilter<$PrismaModel = never> =
    | PatchUndefined<
        Either<Required<JsonNullableFilterBase<$PrismaModel>>, Exclude<keyof Required<JsonNullableFilterBase<$PrismaModel>>, 'path'>>,
        Required<JsonNullableFilterBase<$PrismaModel>>
      >
    | OptionalFlat<Omit<Required<JsonNullableFilterBase<$PrismaModel>>, 'path'>>

  export type JsonNullableFilterBase<$PrismaModel = never> = {
    equals?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | JsonNullValueFilter
    path?: string[]
    mode?: QueryMode | EnumQueryModeFieldRefInput<$PrismaModel>
    string_contains?: string | StringFieldRefInput<$PrismaModel>
    string_starts_with?: string | StringFieldRefInput<$PrismaModel>
    string_ends_with?: string | StringFieldRefInput<$PrismaModel>
    array_starts_with?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    array_ends_with?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    array_contains?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    lt?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    lte?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    gt?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    gte?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    not?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | JsonNullValueFilter
  }

  export type IntNullableFilter<$PrismaModel = never> = {
    equals?: number | IntFieldRefInput<$PrismaModel> | null
    in?: number[] | ListIntFieldRefInput<$PrismaModel> | null
    notIn?: number[] | ListIntFieldRefInput<$PrismaModel> | null
    lt?: number | IntFieldRefInput<$PrismaModel>
    lte?: number | IntFieldRefInput<$PrismaModel>
    gt?: number | IntFieldRefInput<$PrismaModel>
    gte?: number | IntFieldRefInput<$PrismaModel>
    not?: NestedIntNullableFilter<$PrismaModel> | number | null
  }

  export type BigIntNullableFilter<$PrismaModel = never> = {
    equals?: bigint | number | BigIntFieldRefInput<$PrismaModel> | null
    in?: bigint[] | number[] | ListBigIntFieldRefInput<$PrismaModel> | null
    notIn?: bigint[] | number[] | ListBigIntFieldRefInput<$PrismaModel> | null
    lt?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    lte?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    gt?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    gte?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    not?: NestedBigIntNullableFilter<$PrismaModel> | bigint | number | null
  }

  export type ApiKeyListRelationFilter = {
    every?: ApiKeyWhereInput
    some?: ApiKeyWhereInput
    none?: ApiKeyWhereInput
  }

  export type CartNullableScalarRelationFilter = {
    is?: CartWhereInput | null
    isNot?: CartWhereInput | null
  }

  export type CounterpartyListRelationFilter = {
    every?: CounterpartyWhereInput
    some?: CounterpartyWhereInput
    none?: CounterpartyWhereInput
  }

  export type CounterpartyRequestListRelationFilter = {
    every?: CounterpartyRequestWhereInput
    some?: CounterpartyRequestWhereInput
    none?: CounterpartyRequestWhereInput
  }

  export type EmployeeListRelationFilter = {
    every?: EmployeeWhereInput
    some?: EmployeeWhereInput
    none?: EmployeeWhereInput
  }

  export type FavoritesListRelationFilter = {
    every?: FavoritesWhereInput
    some?: FavoritesWhereInput
    none?: FavoritesWhereInput
  }

  export type ProductListRelationFilter = {
    every?: ProductWhereInput
    some?: ProductWhereInput
    none?: ProductWhereInput
  }

  export type ServiceListRelationFilter = {
    every?: ServiceWhereInput
    some?: ServiceWhereInput
    none?: ServiceWhereInput
  }

  export type SupplyListRelationFilter = {
    every?: SupplyWhereInput
    some?: SupplyWhereInput
    none?: SupplyWhereInput
  }

  export type UserListRelationFilter = {
    every?: UserWhereInput
    some?: UserWhereInput
    none?: UserWhereInput
  }

  export type LogisticsListRelationFilter = {
    every?: LogisticsWhereInput
    some?: LogisticsWhereInput
    none?: LogisticsWhereInput
  }

  export type SupplyOrderListRelationFilter = {
    every?: SupplyOrderWhereInput
    some?: SupplyOrderWhereInput
    none?: SupplyOrderWhereInput
  }

  export type WildberriesSupplyListRelationFilter = {
    every?: WildberriesSupplyWhereInput
    some?: WildberriesSupplyWhereInput
    none?: WildberriesSupplyWhereInput
  }

  export type SupplySupplierListRelationFilter = {
    every?: SupplySupplierWhereInput
    some?: SupplySupplierWhereInput
    none?: SupplySupplierWhereInput
  }

  export type ApiKeyOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type CounterpartyOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type CounterpartyRequestOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type EmployeeOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type FavoritesOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type ProductOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type ServiceOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type SupplyOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type UserOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type LogisticsOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type SupplyOrderOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type WildberriesSupplyOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type SupplySupplierOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type OrganizationCountOrderByAggregateInput = {
    id?: SortOrder
    inn?: SortOrder
    kpp?: SortOrder
    name?: SortOrder
    fullName?: SortOrder
    ogrn?: SortOrder
    ogrnDate?: SortOrder
    type?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    address?: SortOrder
    addressFull?: SortOrder
    status?: SortOrder
    actualityDate?: SortOrder
    registrationDate?: SortOrder
    liquidationDate?: SortOrder
    managementName?: SortOrder
    managementPost?: SortOrder
    opfCode?: SortOrder
    opfFull?: SortOrder
    opfShort?: SortOrder
    okato?: SortOrder
    oktmo?: SortOrder
    okpo?: SortOrder
    okved?: SortOrder
    phones?: SortOrder
    emails?: SortOrder
    employeeCount?: SortOrder
    revenue?: SortOrder
    taxSystem?: SortOrder
    dadataData?: SortOrder
  }

  export type OrganizationAvgOrderByAggregateInput = {
    employeeCount?: SortOrder
    revenue?: SortOrder
  }

  export type OrganizationMaxOrderByAggregateInput = {
    id?: SortOrder
    inn?: SortOrder
    kpp?: SortOrder
    name?: SortOrder
    fullName?: SortOrder
    ogrn?: SortOrder
    ogrnDate?: SortOrder
    type?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    address?: SortOrder
    addressFull?: SortOrder
    status?: SortOrder
    actualityDate?: SortOrder
    registrationDate?: SortOrder
    liquidationDate?: SortOrder
    managementName?: SortOrder
    managementPost?: SortOrder
    opfCode?: SortOrder
    opfFull?: SortOrder
    opfShort?: SortOrder
    okato?: SortOrder
    oktmo?: SortOrder
    okpo?: SortOrder
    okved?: SortOrder
    employeeCount?: SortOrder
    revenue?: SortOrder
    taxSystem?: SortOrder
  }

  export type OrganizationMinOrderByAggregateInput = {
    id?: SortOrder
    inn?: SortOrder
    kpp?: SortOrder
    name?: SortOrder
    fullName?: SortOrder
    ogrn?: SortOrder
    ogrnDate?: SortOrder
    type?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    address?: SortOrder
    addressFull?: SortOrder
    status?: SortOrder
    actualityDate?: SortOrder
    registrationDate?: SortOrder
    liquidationDate?: SortOrder
    managementName?: SortOrder
    managementPost?: SortOrder
    opfCode?: SortOrder
    opfFull?: SortOrder
    opfShort?: SortOrder
    okato?: SortOrder
    oktmo?: SortOrder
    okpo?: SortOrder
    okved?: SortOrder
    employeeCount?: SortOrder
    revenue?: SortOrder
    taxSystem?: SortOrder
  }

  export type OrganizationSumOrderByAggregateInput = {
    employeeCount?: SortOrder
    revenue?: SortOrder
  }

  export type EnumOrganizationTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.OrganizationType | EnumOrganizationTypeFieldRefInput<$PrismaModel>
    in?: $Enums.OrganizationType[] | ListEnumOrganizationTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.OrganizationType[] | ListEnumOrganizationTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumOrganizationTypeWithAggregatesFilter<$PrismaModel> | $Enums.OrganizationType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumOrganizationTypeFilter<$PrismaModel>
    _max?: NestedEnumOrganizationTypeFilter<$PrismaModel>
  }
  export type JsonNullableWithAggregatesFilter<$PrismaModel = never> =
    | PatchUndefined<
        Either<Required<JsonNullableWithAggregatesFilterBase<$PrismaModel>>, Exclude<keyof Required<JsonNullableWithAggregatesFilterBase<$PrismaModel>>, 'path'>>,
        Required<JsonNullableWithAggregatesFilterBase<$PrismaModel>>
      >
    | OptionalFlat<Omit<Required<JsonNullableWithAggregatesFilterBase<$PrismaModel>>, 'path'>>

  export type JsonNullableWithAggregatesFilterBase<$PrismaModel = never> = {
    equals?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | JsonNullValueFilter
    path?: string[]
    mode?: QueryMode | EnumQueryModeFieldRefInput<$PrismaModel>
    string_contains?: string | StringFieldRefInput<$PrismaModel>
    string_starts_with?: string | StringFieldRefInput<$PrismaModel>
    string_ends_with?: string | StringFieldRefInput<$PrismaModel>
    array_starts_with?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    array_ends_with?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    array_contains?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    lt?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    lte?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    gt?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    gte?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    not?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | JsonNullValueFilter
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedJsonNullableFilter<$PrismaModel>
    _max?: NestedJsonNullableFilter<$PrismaModel>
  }

  export type IntNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: number | IntFieldRefInput<$PrismaModel> | null
    in?: number[] | ListIntFieldRefInput<$PrismaModel> | null
    notIn?: number[] | ListIntFieldRefInput<$PrismaModel> | null
    lt?: number | IntFieldRefInput<$PrismaModel>
    lte?: number | IntFieldRefInput<$PrismaModel>
    gt?: number | IntFieldRefInput<$PrismaModel>
    gte?: number | IntFieldRefInput<$PrismaModel>
    not?: NestedIntNullableWithAggregatesFilter<$PrismaModel> | number | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _avg?: NestedFloatNullableFilter<$PrismaModel>
    _sum?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedIntNullableFilter<$PrismaModel>
    _max?: NestedIntNullableFilter<$PrismaModel>
  }

  export type BigIntNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: bigint | number | BigIntFieldRefInput<$PrismaModel> | null
    in?: bigint[] | number[] | ListBigIntFieldRefInput<$PrismaModel> | null
    notIn?: bigint[] | number[] | ListBigIntFieldRefInput<$PrismaModel> | null
    lt?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    lte?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    gt?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    gte?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    not?: NestedBigIntNullableWithAggregatesFilter<$PrismaModel> | bigint | number | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _avg?: NestedFloatNullableFilter<$PrismaModel>
    _sum?: NestedBigIntNullableFilter<$PrismaModel>
    _min?: NestedBigIntNullableFilter<$PrismaModel>
    _max?: NestedBigIntNullableFilter<$PrismaModel>
  }

  export type EnumMarketplaceTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.MarketplaceType | EnumMarketplaceTypeFieldRefInput<$PrismaModel>
    in?: $Enums.MarketplaceType[] | ListEnumMarketplaceTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.MarketplaceType[] | ListEnumMarketplaceTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumMarketplaceTypeFilter<$PrismaModel> | $Enums.MarketplaceType
  }

  export type OrganizationScalarRelationFilter = {
    is?: OrganizationWhereInput
    isNot?: OrganizationWhereInput
  }

  export type ApiKeyOrganizationIdMarketplaceCompoundUniqueInput = {
    organizationId: string
    marketplace: $Enums.MarketplaceType
  }

  export type ApiKeyCountOrderByAggregateInput = {
    id?: SortOrder
    marketplace?: SortOrder
    apiKey?: SortOrder
    isActive?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    validationData?: SortOrder
    organizationId?: SortOrder
  }

  export type ApiKeyMaxOrderByAggregateInput = {
    id?: SortOrder
    marketplace?: SortOrder
    apiKey?: SortOrder
    isActive?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    organizationId?: SortOrder
  }

  export type ApiKeyMinOrderByAggregateInput = {
    id?: SortOrder
    marketplace?: SortOrder
    apiKey?: SortOrder
    isActive?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    organizationId?: SortOrder
  }

  export type EnumMarketplaceTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.MarketplaceType | EnumMarketplaceTypeFieldRefInput<$PrismaModel>
    in?: $Enums.MarketplaceType[] | ListEnumMarketplaceTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.MarketplaceType[] | ListEnumMarketplaceTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumMarketplaceTypeWithAggregatesFilter<$PrismaModel> | $Enums.MarketplaceType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumMarketplaceTypeFilter<$PrismaModel>
    _max?: NestedEnumMarketplaceTypeFilter<$PrismaModel>
  }

  export type EnumCounterpartyRequestStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.CounterpartyRequestStatus | EnumCounterpartyRequestStatusFieldRefInput<$PrismaModel>
    in?: $Enums.CounterpartyRequestStatus[] | ListEnumCounterpartyRequestStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.CounterpartyRequestStatus[] | ListEnumCounterpartyRequestStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumCounterpartyRequestStatusFilter<$PrismaModel> | $Enums.CounterpartyRequestStatus
  }

  export type CounterpartyRequestSenderIdReceiverIdCompoundUniqueInput = {
    senderId: string
    receiverId: string
  }

  export type CounterpartyRequestCountOrderByAggregateInput = {
    id?: SortOrder
    status?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    senderId?: SortOrder
    receiverId?: SortOrder
    message?: SortOrder
  }

  export type CounterpartyRequestMaxOrderByAggregateInput = {
    id?: SortOrder
    status?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    senderId?: SortOrder
    receiverId?: SortOrder
    message?: SortOrder
  }

  export type CounterpartyRequestMinOrderByAggregateInput = {
    id?: SortOrder
    status?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    senderId?: SortOrder
    receiverId?: SortOrder
    message?: SortOrder
  }

  export type EnumCounterpartyRequestStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.CounterpartyRequestStatus | EnumCounterpartyRequestStatusFieldRefInput<$PrismaModel>
    in?: $Enums.CounterpartyRequestStatus[] | ListEnumCounterpartyRequestStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.CounterpartyRequestStatus[] | ListEnumCounterpartyRequestStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumCounterpartyRequestStatusWithAggregatesFilter<$PrismaModel> | $Enums.CounterpartyRequestStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumCounterpartyRequestStatusFilter<$PrismaModel>
    _max?: NestedEnumCounterpartyRequestStatusFilter<$PrismaModel>
  }

  export type CounterpartyOrganizationIdCounterpartyIdCompoundUniqueInput = {
    organizationId: string
    counterpartyId: string
  }

  export type CounterpartyCountOrderByAggregateInput = {
    id?: SortOrder
    createdAt?: SortOrder
    organizationId?: SortOrder
    counterpartyId?: SortOrder
  }

  export type CounterpartyMaxOrderByAggregateInput = {
    id?: SortOrder
    createdAt?: SortOrder
    organizationId?: SortOrder
    counterpartyId?: SortOrder
  }

  export type CounterpartyMinOrderByAggregateInput = {
    id?: SortOrder
    createdAt?: SortOrder
    organizationId?: SortOrder
    counterpartyId?: SortOrder
  }

  export type EnumMessageTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.MessageType | EnumMessageTypeFieldRefInput<$PrismaModel>
    in?: $Enums.MessageType[] | ListEnumMessageTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.MessageType[] | ListEnumMessageTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumMessageTypeFilter<$PrismaModel> | $Enums.MessageType
  }

  export type UserScalarRelationFilter = {
    is?: UserWhereInput
    isNot?: UserWhereInput
  }

  export type MessageCountOrderByAggregateInput = {
    id?: SortOrder
    content?: SortOrder
    type?: SortOrder
    voiceUrl?: SortOrder
    voiceDuration?: SortOrder
    fileUrl?: SortOrder
    fileName?: SortOrder
    fileSize?: SortOrder
    fileType?: SortOrder
    isRead?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    senderId?: SortOrder
    senderOrganizationId?: SortOrder
    receiverOrganizationId?: SortOrder
  }

  export type MessageAvgOrderByAggregateInput = {
    voiceDuration?: SortOrder
    fileSize?: SortOrder
  }

  export type MessageMaxOrderByAggregateInput = {
    id?: SortOrder
    content?: SortOrder
    type?: SortOrder
    voiceUrl?: SortOrder
    voiceDuration?: SortOrder
    fileUrl?: SortOrder
    fileName?: SortOrder
    fileSize?: SortOrder
    fileType?: SortOrder
    isRead?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    senderId?: SortOrder
    senderOrganizationId?: SortOrder
    receiverOrganizationId?: SortOrder
  }

  export type MessageMinOrderByAggregateInput = {
    id?: SortOrder
    content?: SortOrder
    type?: SortOrder
    voiceUrl?: SortOrder
    voiceDuration?: SortOrder
    fileUrl?: SortOrder
    fileName?: SortOrder
    fileSize?: SortOrder
    fileType?: SortOrder
    isRead?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    senderId?: SortOrder
    senderOrganizationId?: SortOrder
    receiverOrganizationId?: SortOrder
  }

  export type MessageSumOrderByAggregateInput = {
    voiceDuration?: SortOrder
    fileSize?: SortOrder
  }

  export type EnumMessageTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.MessageType | EnumMessageTypeFieldRefInput<$PrismaModel>
    in?: $Enums.MessageType[] | ListEnumMessageTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.MessageType[] | ListEnumMessageTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumMessageTypeWithAggregatesFilter<$PrismaModel> | $Enums.MessageType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumMessageTypeFilter<$PrismaModel>
    _max?: NestedEnumMessageTypeFilter<$PrismaModel>
  }

  export type DecimalFilter<$PrismaModel = never> = {
    equals?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    in?: Decimal[] | DecimalJsLike[] | number[] | string[] | ListDecimalFieldRefInput<$PrismaModel>
    notIn?: Decimal[] | DecimalJsLike[] | number[] | string[] | ListDecimalFieldRefInput<$PrismaModel>
    lt?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    lte?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    gt?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    gte?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    not?: NestedDecimalFilter<$PrismaModel> | Decimal | DecimalJsLike | number | string
  }

  export type ServiceCountOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    description?: SortOrder
    price?: SortOrder
    imageUrl?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    organizationId?: SortOrder
  }

  export type ServiceAvgOrderByAggregateInput = {
    price?: SortOrder
  }

  export type ServiceMaxOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    description?: SortOrder
    price?: SortOrder
    imageUrl?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    organizationId?: SortOrder
  }

  export type ServiceMinOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    description?: SortOrder
    price?: SortOrder
    imageUrl?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    organizationId?: SortOrder
  }

  export type ServiceSumOrderByAggregateInput = {
    price?: SortOrder
  }

  export type DecimalWithAggregatesFilter<$PrismaModel = never> = {
    equals?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    in?: Decimal[] | DecimalJsLike[] | number[] | string[] | ListDecimalFieldRefInput<$PrismaModel>
    notIn?: Decimal[] | DecimalJsLike[] | number[] | string[] | ListDecimalFieldRefInput<$PrismaModel>
    lt?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    lte?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    gt?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    gte?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    not?: NestedDecimalWithAggregatesFilter<$PrismaModel> | Decimal | DecimalJsLike | number | string
    _count?: NestedIntFilter<$PrismaModel>
    _avg?: NestedDecimalFilter<$PrismaModel>
    _sum?: NestedDecimalFilter<$PrismaModel>
    _min?: NestedDecimalFilter<$PrismaModel>
    _max?: NestedDecimalFilter<$PrismaModel>
  }

  export type SupplyCountOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    description?: SortOrder
    price?: SortOrder
    quantity?: SortOrder
    unit?: SortOrder
    category?: SortOrder
    status?: SortOrder
    date?: SortOrder
    supplier?: SortOrder
    minStock?: SortOrder
    currentStock?: SortOrder
    imageUrl?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    organizationId?: SortOrder
  }

  export type SupplyAvgOrderByAggregateInput = {
    price?: SortOrder
    quantity?: SortOrder
    minStock?: SortOrder
    currentStock?: SortOrder
  }

  export type SupplyMaxOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    description?: SortOrder
    price?: SortOrder
    quantity?: SortOrder
    unit?: SortOrder
    category?: SortOrder
    status?: SortOrder
    date?: SortOrder
    supplier?: SortOrder
    minStock?: SortOrder
    currentStock?: SortOrder
    imageUrl?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    organizationId?: SortOrder
  }

  export type SupplyMinOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    description?: SortOrder
    price?: SortOrder
    quantity?: SortOrder
    unit?: SortOrder
    category?: SortOrder
    status?: SortOrder
    date?: SortOrder
    supplier?: SortOrder
    minStock?: SortOrder
    currentStock?: SortOrder
    imageUrl?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    organizationId?: SortOrder
  }

  export type SupplySumOrderByAggregateInput = {
    price?: SortOrder
    quantity?: SortOrder
    minStock?: SortOrder
    currentStock?: SortOrder
  }

  export type CategoryCountOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type CategoryMaxOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type CategoryMinOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type DecimalNullableFilter<$PrismaModel = never> = {
    equals?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel> | null
    in?: Decimal[] | DecimalJsLike[] | number[] | string[] | ListDecimalFieldRefInput<$PrismaModel> | null
    notIn?: Decimal[] | DecimalJsLike[] | number[] | string[] | ListDecimalFieldRefInput<$PrismaModel> | null
    lt?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    lte?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    gt?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    gte?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    not?: NestedDecimalNullableFilter<$PrismaModel> | Decimal | DecimalJsLike | number | string | null
  }
  export type JsonFilter<$PrismaModel = never> =
    | PatchUndefined<
        Either<Required<JsonFilterBase<$PrismaModel>>, Exclude<keyof Required<JsonFilterBase<$PrismaModel>>, 'path'>>,
        Required<JsonFilterBase<$PrismaModel>>
      >
    | OptionalFlat<Omit<Required<JsonFilterBase<$PrismaModel>>, 'path'>>

  export type JsonFilterBase<$PrismaModel = never> = {
    equals?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | JsonNullValueFilter
    path?: string[]
    mode?: QueryMode | EnumQueryModeFieldRefInput<$PrismaModel>
    string_contains?: string | StringFieldRefInput<$PrismaModel>
    string_starts_with?: string | StringFieldRefInput<$PrismaModel>
    string_ends_with?: string | StringFieldRefInput<$PrismaModel>
    array_starts_with?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    array_ends_with?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    array_contains?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    lt?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    lte?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    gt?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    gte?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    not?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | JsonNullValueFilter
  }

  export type CartItemListRelationFilter = {
    every?: CartItemWhereInput
    some?: CartItemWhereInput
    none?: CartItemWhereInput
  }

  export type SupplyOrderItemListRelationFilter = {
    every?: SupplyOrderItemWhereInput
    some?: SupplyOrderItemWhereInput
    none?: SupplyOrderItemWhereInput
  }

  export type CategoryNullableScalarRelationFilter = {
    is?: CategoryWhereInput | null
    isNot?: CategoryWhereInput | null
  }

  export type CartItemOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type SupplyOrderItemOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type ProductOrganizationIdArticleCompoundUniqueInput = {
    organizationId: string
    article: string
  }

  export type ProductCountOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    article?: SortOrder
    description?: SortOrder
    price?: SortOrder
    quantity?: SortOrder
    categoryId?: SortOrder
    brand?: SortOrder
    color?: SortOrder
    size?: SortOrder
    weight?: SortOrder
    dimensions?: SortOrder
    material?: SortOrder
    images?: SortOrder
    mainImage?: SortOrder
    isActive?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    organizationId?: SortOrder
  }

  export type ProductAvgOrderByAggregateInput = {
    price?: SortOrder
    quantity?: SortOrder
    weight?: SortOrder
  }

  export type ProductMaxOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    article?: SortOrder
    description?: SortOrder
    price?: SortOrder
    quantity?: SortOrder
    categoryId?: SortOrder
    brand?: SortOrder
    color?: SortOrder
    size?: SortOrder
    weight?: SortOrder
    dimensions?: SortOrder
    material?: SortOrder
    mainImage?: SortOrder
    isActive?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    organizationId?: SortOrder
  }

  export type ProductMinOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    article?: SortOrder
    description?: SortOrder
    price?: SortOrder
    quantity?: SortOrder
    categoryId?: SortOrder
    brand?: SortOrder
    color?: SortOrder
    size?: SortOrder
    weight?: SortOrder
    dimensions?: SortOrder
    material?: SortOrder
    mainImage?: SortOrder
    isActive?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    organizationId?: SortOrder
  }

  export type ProductSumOrderByAggregateInput = {
    price?: SortOrder
    quantity?: SortOrder
    weight?: SortOrder
  }

  export type DecimalNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel> | null
    in?: Decimal[] | DecimalJsLike[] | number[] | string[] | ListDecimalFieldRefInput<$PrismaModel> | null
    notIn?: Decimal[] | DecimalJsLike[] | number[] | string[] | ListDecimalFieldRefInput<$PrismaModel> | null
    lt?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    lte?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    gt?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    gte?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    not?: NestedDecimalNullableWithAggregatesFilter<$PrismaModel> | Decimal | DecimalJsLike | number | string | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _avg?: NestedDecimalNullableFilter<$PrismaModel>
    _sum?: NestedDecimalNullableFilter<$PrismaModel>
    _min?: NestedDecimalNullableFilter<$PrismaModel>
    _max?: NestedDecimalNullableFilter<$PrismaModel>
  }
  export type JsonWithAggregatesFilter<$PrismaModel = never> =
    | PatchUndefined<
        Either<Required<JsonWithAggregatesFilterBase<$PrismaModel>>, Exclude<keyof Required<JsonWithAggregatesFilterBase<$PrismaModel>>, 'path'>>,
        Required<JsonWithAggregatesFilterBase<$PrismaModel>>
      >
    | OptionalFlat<Omit<Required<JsonWithAggregatesFilterBase<$PrismaModel>>, 'path'>>

  export type JsonWithAggregatesFilterBase<$PrismaModel = never> = {
    equals?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | JsonNullValueFilter
    path?: string[]
    mode?: QueryMode | EnumQueryModeFieldRefInput<$PrismaModel>
    string_contains?: string | StringFieldRefInput<$PrismaModel>
    string_starts_with?: string | StringFieldRefInput<$PrismaModel>
    string_ends_with?: string | StringFieldRefInput<$PrismaModel>
    array_starts_with?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    array_ends_with?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    array_contains?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    lt?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    lte?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    gt?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    gte?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    not?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | JsonNullValueFilter
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedJsonFilter<$PrismaModel>
    _max?: NestedJsonFilter<$PrismaModel>
  }

  export type CartCountOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type CartMaxOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type CartMinOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type CartScalarRelationFilter = {
    is?: CartWhereInput
    isNot?: CartWhereInput
  }

  export type ProductScalarRelationFilter = {
    is?: ProductWhereInput
    isNot?: ProductWhereInput
  }

  export type CartItemCartIdProductIdCompoundUniqueInput = {
    cartId: string
    productId: string
  }

  export type CartItemCountOrderByAggregateInput = {
    id?: SortOrder
    cartId?: SortOrder
    productId?: SortOrder
    quantity?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type CartItemAvgOrderByAggregateInput = {
    quantity?: SortOrder
  }

  export type CartItemMaxOrderByAggregateInput = {
    id?: SortOrder
    cartId?: SortOrder
    productId?: SortOrder
    quantity?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type CartItemMinOrderByAggregateInput = {
    id?: SortOrder
    cartId?: SortOrder
    productId?: SortOrder
    quantity?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type CartItemSumOrderByAggregateInput = {
    quantity?: SortOrder
  }

  export type FavoritesOrganizationIdProductIdCompoundUniqueInput = {
    organizationId: string
    productId: string
  }

  export type FavoritesCountOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    productId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type FavoritesMaxOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    productId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type FavoritesMinOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    productId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type FloatNullableFilter<$PrismaModel = never> = {
    equals?: number | FloatFieldRefInput<$PrismaModel> | null
    in?: number[] | ListFloatFieldRefInput<$PrismaModel> | null
    notIn?: number[] | ListFloatFieldRefInput<$PrismaModel> | null
    lt?: number | FloatFieldRefInput<$PrismaModel>
    lte?: number | FloatFieldRefInput<$PrismaModel>
    gt?: number | FloatFieldRefInput<$PrismaModel>
    gte?: number | FloatFieldRefInput<$PrismaModel>
    not?: NestedFloatNullableFilter<$PrismaModel> | number | null
  }

  export type EnumEmployeeStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.EmployeeStatus | EnumEmployeeStatusFieldRefInput<$PrismaModel>
    in?: $Enums.EmployeeStatus[] | ListEnumEmployeeStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.EmployeeStatus[] | ListEnumEmployeeStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumEmployeeStatusFilter<$PrismaModel> | $Enums.EmployeeStatus
  }

  export type EmployeeScheduleListRelationFilter = {
    every?: EmployeeScheduleWhereInput
    some?: EmployeeScheduleWhereInput
    none?: EmployeeScheduleWhereInput
  }

  export type EmployeeScheduleOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type EmployeeCountOrderByAggregateInput = {
    id?: SortOrder
    firstName?: SortOrder
    lastName?: SortOrder
    middleName?: SortOrder
    birthDate?: SortOrder
    avatar?: SortOrder
    passportPhoto?: SortOrder
    passportSeries?: SortOrder
    passportNumber?: SortOrder
    passportIssued?: SortOrder
    passportDate?: SortOrder
    address?: SortOrder
    position?: SortOrder
    department?: SortOrder
    hireDate?: SortOrder
    salary?: SortOrder
    status?: SortOrder
    phone?: SortOrder
    email?: SortOrder
    telegram?: SortOrder
    whatsapp?: SortOrder
    emergencyContact?: SortOrder
    emergencyPhone?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type EmployeeAvgOrderByAggregateInput = {
    salary?: SortOrder
  }

  export type EmployeeMaxOrderByAggregateInput = {
    id?: SortOrder
    firstName?: SortOrder
    lastName?: SortOrder
    middleName?: SortOrder
    birthDate?: SortOrder
    avatar?: SortOrder
    passportPhoto?: SortOrder
    passportSeries?: SortOrder
    passportNumber?: SortOrder
    passportIssued?: SortOrder
    passportDate?: SortOrder
    address?: SortOrder
    position?: SortOrder
    department?: SortOrder
    hireDate?: SortOrder
    salary?: SortOrder
    status?: SortOrder
    phone?: SortOrder
    email?: SortOrder
    telegram?: SortOrder
    whatsapp?: SortOrder
    emergencyContact?: SortOrder
    emergencyPhone?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type EmployeeMinOrderByAggregateInput = {
    id?: SortOrder
    firstName?: SortOrder
    lastName?: SortOrder
    middleName?: SortOrder
    birthDate?: SortOrder
    avatar?: SortOrder
    passportPhoto?: SortOrder
    passportSeries?: SortOrder
    passportNumber?: SortOrder
    passportIssued?: SortOrder
    passportDate?: SortOrder
    address?: SortOrder
    position?: SortOrder
    department?: SortOrder
    hireDate?: SortOrder
    salary?: SortOrder
    status?: SortOrder
    phone?: SortOrder
    email?: SortOrder
    telegram?: SortOrder
    whatsapp?: SortOrder
    emergencyContact?: SortOrder
    emergencyPhone?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type EmployeeSumOrderByAggregateInput = {
    salary?: SortOrder
  }

  export type FloatNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: number | FloatFieldRefInput<$PrismaModel> | null
    in?: number[] | ListFloatFieldRefInput<$PrismaModel> | null
    notIn?: number[] | ListFloatFieldRefInput<$PrismaModel> | null
    lt?: number | FloatFieldRefInput<$PrismaModel>
    lte?: number | FloatFieldRefInput<$PrismaModel>
    gt?: number | FloatFieldRefInput<$PrismaModel>
    gte?: number | FloatFieldRefInput<$PrismaModel>
    not?: NestedFloatNullableWithAggregatesFilter<$PrismaModel> | number | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _avg?: NestedFloatNullableFilter<$PrismaModel>
    _sum?: NestedFloatNullableFilter<$PrismaModel>
    _min?: NestedFloatNullableFilter<$PrismaModel>
    _max?: NestedFloatNullableFilter<$PrismaModel>
  }

  export type EnumEmployeeStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.EmployeeStatus | EnumEmployeeStatusFieldRefInput<$PrismaModel>
    in?: $Enums.EmployeeStatus[] | ListEnumEmployeeStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.EmployeeStatus[] | ListEnumEmployeeStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumEmployeeStatusWithAggregatesFilter<$PrismaModel> | $Enums.EmployeeStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumEmployeeStatusFilter<$PrismaModel>
    _max?: NestedEnumEmployeeStatusFilter<$PrismaModel>
  }

  export type EnumScheduleStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.ScheduleStatus | EnumScheduleStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ScheduleStatus[] | ListEnumScheduleStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ScheduleStatus[] | ListEnumScheduleStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumScheduleStatusFilter<$PrismaModel> | $Enums.ScheduleStatus
  }

  export type EmployeeScalarRelationFilter = {
    is?: EmployeeWhereInput
    isNot?: EmployeeWhereInput
  }

  export type EmployeeScheduleEmployeeIdDateCompoundUniqueInput = {
    employeeId: string
    date: Date | string
  }

  export type EmployeeScheduleCountOrderByAggregateInput = {
    id?: SortOrder
    date?: SortOrder
    status?: SortOrder
    hoursWorked?: SortOrder
    notes?: SortOrder
    employeeId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type EmployeeScheduleAvgOrderByAggregateInput = {
    hoursWorked?: SortOrder
  }

  export type EmployeeScheduleMaxOrderByAggregateInput = {
    id?: SortOrder
    date?: SortOrder
    status?: SortOrder
    hoursWorked?: SortOrder
    notes?: SortOrder
    employeeId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type EmployeeScheduleMinOrderByAggregateInput = {
    id?: SortOrder
    date?: SortOrder
    status?: SortOrder
    hoursWorked?: SortOrder
    notes?: SortOrder
    employeeId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type EmployeeScheduleSumOrderByAggregateInput = {
    hoursWorked?: SortOrder
  }

  export type EnumScheduleStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ScheduleStatus | EnumScheduleStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ScheduleStatus[] | ListEnumScheduleStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ScheduleStatus[] | ListEnumScheduleStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumScheduleStatusWithAggregatesFilter<$PrismaModel> | $Enums.ScheduleStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumScheduleStatusFilter<$PrismaModel>
    _max?: NestedEnumScheduleStatusFilter<$PrismaModel>
  }

  export type EnumWildberriesSupplyStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.WildberriesSupplyStatus | EnumWildberriesSupplyStatusFieldRefInput<$PrismaModel>
    in?: $Enums.WildberriesSupplyStatus[] | ListEnumWildberriesSupplyStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.WildberriesSupplyStatus[] | ListEnumWildberriesSupplyStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumWildberriesSupplyStatusFilter<$PrismaModel> | $Enums.WildberriesSupplyStatus
  }

  export type WildberriesSupplyCardListRelationFilter = {
    every?: WildberriesSupplyCardWhereInput
    some?: WildberriesSupplyCardWhereInput
    none?: WildberriesSupplyCardWhereInput
  }

  export type WildberriesSupplyCardOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type WildberriesSupplyCountOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    deliveryDate?: SortOrder
    status?: SortOrder
    totalAmount?: SortOrder
    totalItems?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type WildberriesSupplyAvgOrderByAggregateInput = {
    totalAmount?: SortOrder
    totalItems?: SortOrder
  }

  export type WildberriesSupplyMaxOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    deliveryDate?: SortOrder
    status?: SortOrder
    totalAmount?: SortOrder
    totalItems?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type WildberriesSupplyMinOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    deliveryDate?: SortOrder
    status?: SortOrder
    totalAmount?: SortOrder
    totalItems?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type WildberriesSupplySumOrderByAggregateInput = {
    totalAmount?: SortOrder
    totalItems?: SortOrder
  }

  export type EnumWildberriesSupplyStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.WildberriesSupplyStatus | EnumWildberriesSupplyStatusFieldRefInput<$PrismaModel>
    in?: $Enums.WildberriesSupplyStatus[] | ListEnumWildberriesSupplyStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.WildberriesSupplyStatus[] | ListEnumWildberriesSupplyStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumWildberriesSupplyStatusWithAggregatesFilter<$PrismaModel> | $Enums.WildberriesSupplyStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumWildberriesSupplyStatusFilter<$PrismaModel>
    _max?: NestedEnumWildberriesSupplyStatusFilter<$PrismaModel>
  }

  export type WildberriesSupplyScalarRelationFilter = {
    is?: WildberriesSupplyWhereInput
    isNot?: WildberriesSupplyWhereInput
  }

  export type WildberriesSupplyCardCountOrderByAggregateInput = {
    id?: SortOrder
    supplyId?: SortOrder
    nmId?: SortOrder
    vendorCode?: SortOrder
    title?: SortOrder
    brand?: SortOrder
    price?: SortOrder
    discountedPrice?: SortOrder
    quantity?: SortOrder
    selectedQuantity?: SortOrder
    selectedMarket?: SortOrder
    selectedPlace?: SortOrder
    sellerName?: SortOrder
    sellerPhone?: SortOrder
    deliveryDate?: SortOrder
    mediaFiles?: SortOrder
    selectedServices?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type WildberriesSupplyCardAvgOrderByAggregateInput = {
    price?: SortOrder
    discountedPrice?: SortOrder
    quantity?: SortOrder
    selectedQuantity?: SortOrder
  }

  export type WildberriesSupplyCardMaxOrderByAggregateInput = {
    id?: SortOrder
    supplyId?: SortOrder
    nmId?: SortOrder
    vendorCode?: SortOrder
    title?: SortOrder
    brand?: SortOrder
    price?: SortOrder
    discountedPrice?: SortOrder
    quantity?: SortOrder
    selectedQuantity?: SortOrder
    selectedMarket?: SortOrder
    selectedPlace?: SortOrder
    sellerName?: SortOrder
    sellerPhone?: SortOrder
    deliveryDate?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type WildberriesSupplyCardMinOrderByAggregateInput = {
    id?: SortOrder
    supplyId?: SortOrder
    nmId?: SortOrder
    vendorCode?: SortOrder
    title?: SortOrder
    brand?: SortOrder
    price?: SortOrder
    discountedPrice?: SortOrder
    quantity?: SortOrder
    selectedQuantity?: SortOrder
    selectedMarket?: SortOrder
    selectedPlace?: SortOrder
    sellerName?: SortOrder
    sellerPhone?: SortOrder
    deliveryDate?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type WildberriesSupplyCardSumOrderByAggregateInput = {
    price?: SortOrder
    discountedPrice?: SortOrder
    quantity?: SortOrder
    selectedQuantity?: SortOrder
  }

  export type FloatFilter<$PrismaModel = never> = {
    equals?: number | FloatFieldRefInput<$PrismaModel>
    in?: number[] | ListFloatFieldRefInput<$PrismaModel>
    notIn?: number[] | ListFloatFieldRefInput<$PrismaModel>
    lt?: number | FloatFieldRefInput<$PrismaModel>
    lte?: number | FloatFieldRefInput<$PrismaModel>
    gt?: number | FloatFieldRefInput<$PrismaModel>
    gte?: number | FloatFieldRefInput<$PrismaModel>
    not?: NestedFloatFilter<$PrismaModel> | number
  }

  export type LogisticsCountOrderByAggregateInput = {
    id?: SortOrder
    fromLocation?: SortOrder
    toLocation?: SortOrder
    priceUnder1m3?: SortOrder
    priceOver1m3?: SortOrder
    description?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    organizationId?: SortOrder
  }

  export type LogisticsAvgOrderByAggregateInput = {
    priceUnder1m3?: SortOrder
    priceOver1m3?: SortOrder
  }

  export type LogisticsMaxOrderByAggregateInput = {
    id?: SortOrder
    fromLocation?: SortOrder
    toLocation?: SortOrder
    priceUnder1m3?: SortOrder
    priceOver1m3?: SortOrder
    description?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    organizationId?: SortOrder
  }

  export type LogisticsMinOrderByAggregateInput = {
    id?: SortOrder
    fromLocation?: SortOrder
    toLocation?: SortOrder
    priceUnder1m3?: SortOrder
    priceOver1m3?: SortOrder
    description?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    organizationId?: SortOrder
  }

  export type LogisticsSumOrderByAggregateInput = {
    priceUnder1m3?: SortOrder
    priceOver1m3?: SortOrder
  }

  export type FloatWithAggregatesFilter<$PrismaModel = never> = {
    equals?: number | FloatFieldRefInput<$PrismaModel>
    in?: number[] | ListFloatFieldRefInput<$PrismaModel>
    notIn?: number[] | ListFloatFieldRefInput<$PrismaModel>
    lt?: number | FloatFieldRefInput<$PrismaModel>
    lte?: number | FloatFieldRefInput<$PrismaModel>
    gt?: number | FloatFieldRefInput<$PrismaModel>
    gte?: number | FloatFieldRefInput<$PrismaModel>
    not?: NestedFloatWithAggregatesFilter<$PrismaModel> | number
    _count?: NestedIntFilter<$PrismaModel>
    _avg?: NestedFloatFilter<$PrismaModel>
    _sum?: NestedFloatFilter<$PrismaModel>
    _min?: NestedFloatFilter<$PrismaModel>
    _max?: NestedFloatFilter<$PrismaModel>
  }

  export type EnumSupplyOrderStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.SupplyOrderStatus | EnumSupplyOrderStatusFieldRefInput<$PrismaModel>
    in?: $Enums.SupplyOrderStatus[] | ListEnumSupplyOrderStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.SupplyOrderStatus[] | ListEnumSupplyOrderStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumSupplyOrderStatusFilter<$PrismaModel> | $Enums.SupplyOrderStatus
  }

  export type SupplyOrderCountOrderByAggregateInput = {
    id?: SortOrder
    partnerId?: SortOrder
    deliveryDate?: SortOrder
    status?: SortOrder
    totalAmount?: SortOrder
    totalItems?: SortOrder
    fulfillmentCenterId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    organizationId?: SortOrder
  }

  export type SupplyOrderAvgOrderByAggregateInput = {
    totalAmount?: SortOrder
    totalItems?: SortOrder
  }

  export type SupplyOrderMaxOrderByAggregateInput = {
    id?: SortOrder
    partnerId?: SortOrder
    deliveryDate?: SortOrder
    status?: SortOrder
    totalAmount?: SortOrder
    totalItems?: SortOrder
    fulfillmentCenterId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    organizationId?: SortOrder
  }

  export type SupplyOrderMinOrderByAggregateInput = {
    id?: SortOrder
    partnerId?: SortOrder
    deliveryDate?: SortOrder
    status?: SortOrder
    totalAmount?: SortOrder
    totalItems?: SortOrder
    fulfillmentCenterId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    organizationId?: SortOrder
  }

  export type SupplyOrderSumOrderByAggregateInput = {
    totalAmount?: SortOrder
    totalItems?: SortOrder
  }

  export type EnumSupplyOrderStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.SupplyOrderStatus | EnumSupplyOrderStatusFieldRefInput<$PrismaModel>
    in?: $Enums.SupplyOrderStatus[] | ListEnumSupplyOrderStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.SupplyOrderStatus[] | ListEnumSupplyOrderStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumSupplyOrderStatusWithAggregatesFilter<$PrismaModel> | $Enums.SupplyOrderStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumSupplyOrderStatusFilter<$PrismaModel>
    _max?: NestedEnumSupplyOrderStatusFilter<$PrismaModel>
  }

  export type SupplyOrderScalarRelationFilter = {
    is?: SupplyOrderWhereInput
    isNot?: SupplyOrderWhereInput
  }

  export type SupplyOrderItemSupplyOrderIdProductIdCompoundUniqueInput = {
    supplyOrderId: string
    productId: string
  }

  export type SupplyOrderItemCountOrderByAggregateInput = {
    id?: SortOrder
    supplyOrderId?: SortOrder
    productId?: SortOrder
    quantity?: SortOrder
    price?: SortOrder
    totalPrice?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type SupplyOrderItemAvgOrderByAggregateInput = {
    quantity?: SortOrder
    price?: SortOrder
    totalPrice?: SortOrder
  }

  export type SupplyOrderItemMaxOrderByAggregateInput = {
    id?: SortOrder
    supplyOrderId?: SortOrder
    productId?: SortOrder
    quantity?: SortOrder
    price?: SortOrder
    totalPrice?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type SupplyOrderItemMinOrderByAggregateInput = {
    id?: SortOrder
    supplyOrderId?: SortOrder
    productId?: SortOrder
    quantity?: SortOrder
    price?: SortOrder
    totalPrice?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type SupplyOrderItemSumOrderByAggregateInput = {
    quantity?: SortOrder
    price?: SortOrder
    totalPrice?: SortOrder
  }

  export type SupplySupplierCountOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    contactName?: SortOrder
    phone?: SortOrder
    market?: SortOrder
    address?: SortOrder
    place?: SortOrder
    telegram?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type SupplySupplierMaxOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    contactName?: SortOrder
    phone?: SortOrder
    market?: SortOrder
    address?: SortOrder
    place?: SortOrder
    telegram?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type SupplySupplierMinOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    contactName?: SortOrder
    phone?: SortOrder
    market?: SortOrder
    address?: SortOrder
    place?: SortOrder
    telegram?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type MessageCreateNestedManyWithoutSenderInput = {
    create?: XOR<MessageCreateWithoutSenderInput, MessageUncheckedCreateWithoutSenderInput> | MessageCreateWithoutSenderInput[] | MessageUncheckedCreateWithoutSenderInput[]
    connectOrCreate?: MessageCreateOrConnectWithoutSenderInput | MessageCreateOrConnectWithoutSenderInput[]
    createMany?: MessageCreateManySenderInputEnvelope
    connect?: MessageWhereUniqueInput | MessageWhereUniqueInput[]
  }

  export type SmsCodeCreateNestedManyWithoutUserInput = {
    create?: XOR<SmsCodeCreateWithoutUserInput, SmsCodeUncheckedCreateWithoutUserInput> | SmsCodeCreateWithoutUserInput[] | SmsCodeUncheckedCreateWithoutUserInput[]
    connectOrCreate?: SmsCodeCreateOrConnectWithoutUserInput | SmsCodeCreateOrConnectWithoutUserInput[]
    createMany?: SmsCodeCreateManyUserInputEnvelope
    connect?: SmsCodeWhereUniqueInput | SmsCodeWhereUniqueInput[]
  }

  export type OrganizationCreateNestedOneWithoutUsersInput = {
    create?: XOR<OrganizationCreateWithoutUsersInput, OrganizationUncheckedCreateWithoutUsersInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutUsersInput
    connect?: OrganizationWhereUniqueInput
  }

  export type MessageUncheckedCreateNestedManyWithoutSenderInput = {
    create?: XOR<MessageCreateWithoutSenderInput, MessageUncheckedCreateWithoutSenderInput> | MessageCreateWithoutSenderInput[] | MessageUncheckedCreateWithoutSenderInput[]
    connectOrCreate?: MessageCreateOrConnectWithoutSenderInput | MessageCreateOrConnectWithoutSenderInput[]
    createMany?: MessageCreateManySenderInputEnvelope
    connect?: MessageWhereUniqueInput | MessageWhereUniqueInput[]
  }

  export type SmsCodeUncheckedCreateNestedManyWithoutUserInput = {
    create?: XOR<SmsCodeCreateWithoutUserInput, SmsCodeUncheckedCreateWithoutUserInput> | SmsCodeCreateWithoutUserInput[] | SmsCodeUncheckedCreateWithoutUserInput[]
    connectOrCreate?: SmsCodeCreateOrConnectWithoutUserInput | SmsCodeCreateOrConnectWithoutUserInput[]
    createMany?: SmsCodeCreateManyUserInputEnvelope
    connect?: SmsCodeWhereUniqueInput | SmsCodeWhereUniqueInput[]
  }

  export type StringFieldUpdateOperationsInput = {
    set?: string
  }

  export type NullableStringFieldUpdateOperationsInput = {
    set?: string | null
  }

  export type DateTimeFieldUpdateOperationsInput = {
    set?: Date | string
  }

  export type MessageUpdateManyWithoutSenderNestedInput = {
    create?: XOR<MessageCreateWithoutSenderInput, MessageUncheckedCreateWithoutSenderInput> | MessageCreateWithoutSenderInput[] | MessageUncheckedCreateWithoutSenderInput[]
    connectOrCreate?: MessageCreateOrConnectWithoutSenderInput | MessageCreateOrConnectWithoutSenderInput[]
    upsert?: MessageUpsertWithWhereUniqueWithoutSenderInput | MessageUpsertWithWhereUniqueWithoutSenderInput[]
    createMany?: MessageCreateManySenderInputEnvelope
    set?: MessageWhereUniqueInput | MessageWhereUniqueInput[]
    disconnect?: MessageWhereUniqueInput | MessageWhereUniqueInput[]
    delete?: MessageWhereUniqueInput | MessageWhereUniqueInput[]
    connect?: MessageWhereUniqueInput | MessageWhereUniqueInput[]
    update?: MessageUpdateWithWhereUniqueWithoutSenderInput | MessageUpdateWithWhereUniqueWithoutSenderInput[]
    updateMany?: MessageUpdateManyWithWhereWithoutSenderInput | MessageUpdateManyWithWhereWithoutSenderInput[]
    deleteMany?: MessageScalarWhereInput | MessageScalarWhereInput[]
  }

  export type SmsCodeUpdateManyWithoutUserNestedInput = {
    create?: XOR<SmsCodeCreateWithoutUserInput, SmsCodeUncheckedCreateWithoutUserInput> | SmsCodeCreateWithoutUserInput[] | SmsCodeUncheckedCreateWithoutUserInput[]
    connectOrCreate?: SmsCodeCreateOrConnectWithoutUserInput | SmsCodeCreateOrConnectWithoutUserInput[]
    upsert?: SmsCodeUpsertWithWhereUniqueWithoutUserInput | SmsCodeUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: SmsCodeCreateManyUserInputEnvelope
    set?: SmsCodeWhereUniqueInput | SmsCodeWhereUniqueInput[]
    disconnect?: SmsCodeWhereUniqueInput | SmsCodeWhereUniqueInput[]
    delete?: SmsCodeWhereUniqueInput | SmsCodeWhereUniqueInput[]
    connect?: SmsCodeWhereUniqueInput | SmsCodeWhereUniqueInput[]
    update?: SmsCodeUpdateWithWhereUniqueWithoutUserInput | SmsCodeUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: SmsCodeUpdateManyWithWhereWithoutUserInput | SmsCodeUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: SmsCodeScalarWhereInput | SmsCodeScalarWhereInput[]
  }

  export type OrganizationUpdateOneWithoutUsersNestedInput = {
    create?: XOR<OrganizationCreateWithoutUsersInput, OrganizationUncheckedCreateWithoutUsersInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutUsersInput
    upsert?: OrganizationUpsertWithoutUsersInput
    disconnect?: OrganizationWhereInput | boolean
    delete?: OrganizationWhereInput | boolean
    connect?: OrganizationWhereUniqueInput
    update?: XOR<XOR<OrganizationUpdateToOneWithWhereWithoutUsersInput, OrganizationUpdateWithoutUsersInput>, OrganizationUncheckedUpdateWithoutUsersInput>
  }

  export type MessageUncheckedUpdateManyWithoutSenderNestedInput = {
    create?: XOR<MessageCreateWithoutSenderInput, MessageUncheckedCreateWithoutSenderInput> | MessageCreateWithoutSenderInput[] | MessageUncheckedCreateWithoutSenderInput[]
    connectOrCreate?: MessageCreateOrConnectWithoutSenderInput | MessageCreateOrConnectWithoutSenderInput[]
    upsert?: MessageUpsertWithWhereUniqueWithoutSenderInput | MessageUpsertWithWhereUniqueWithoutSenderInput[]
    createMany?: MessageCreateManySenderInputEnvelope
    set?: MessageWhereUniqueInput | MessageWhereUniqueInput[]
    disconnect?: MessageWhereUniqueInput | MessageWhereUniqueInput[]
    delete?: MessageWhereUniqueInput | MessageWhereUniqueInput[]
    connect?: MessageWhereUniqueInput | MessageWhereUniqueInput[]
    update?: MessageUpdateWithWhereUniqueWithoutSenderInput | MessageUpdateWithWhereUniqueWithoutSenderInput[]
    updateMany?: MessageUpdateManyWithWhereWithoutSenderInput | MessageUpdateManyWithWhereWithoutSenderInput[]
    deleteMany?: MessageScalarWhereInput | MessageScalarWhereInput[]
  }

  export type SmsCodeUncheckedUpdateManyWithoutUserNestedInput = {
    create?: XOR<SmsCodeCreateWithoutUserInput, SmsCodeUncheckedCreateWithoutUserInput> | SmsCodeCreateWithoutUserInput[] | SmsCodeUncheckedCreateWithoutUserInput[]
    connectOrCreate?: SmsCodeCreateOrConnectWithoutUserInput | SmsCodeCreateOrConnectWithoutUserInput[]
    upsert?: SmsCodeUpsertWithWhereUniqueWithoutUserInput | SmsCodeUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: SmsCodeCreateManyUserInputEnvelope
    set?: SmsCodeWhereUniqueInput | SmsCodeWhereUniqueInput[]
    disconnect?: SmsCodeWhereUniqueInput | SmsCodeWhereUniqueInput[]
    delete?: SmsCodeWhereUniqueInput | SmsCodeWhereUniqueInput[]
    connect?: SmsCodeWhereUniqueInput | SmsCodeWhereUniqueInput[]
    update?: SmsCodeUpdateWithWhereUniqueWithoutUserInput | SmsCodeUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: SmsCodeUpdateManyWithWhereWithoutUserInput | SmsCodeUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: SmsCodeScalarWhereInput | SmsCodeScalarWhereInput[]
  }

  export type BoolFieldUpdateOperationsInput = {
    set?: boolean
  }

  export type NullableDateTimeFieldUpdateOperationsInput = {
    set?: Date | string | null
  }

  export type UserCreateNestedOneWithoutSmsCodesInput = {
    create?: XOR<UserCreateWithoutSmsCodesInput, UserUncheckedCreateWithoutSmsCodesInput>
    connectOrCreate?: UserCreateOrConnectWithoutSmsCodesInput
    connect?: UserWhereUniqueInput
  }

  export type IntFieldUpdateOperationsInput = {
    set?: number
    increment?: number
    decrement?: number
    multiply?: number
    divide?: number
  }

  export type UserUpdateOneWithoutSmsCodesNestedInput = {
    create?: XOR<UserCreateWithoutSmsCodesInput, UserUncheckedCreateWithoutSmsCodesInput>
    connectOrCreate?: UserCreateOrConnectWithoutSmsCodesInput
    upsert?: UserUpsertWithoutSmsCodesInput
    disconnect?: UserWhereInput | boolean
    delete?: UserWhereInput | boolean
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutSmsCodesInput, UserUpdateWithoutSmsCodesInput>, UserUncheckedUpdateWithoutSmsCodesInput>
  }

  export type ApiKeyCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<ApiKeyCreateWithoutOrganizationInput, ApiKeyUncheckedCreateWithoutOrganizationInput> | ApiKeyCreateWithoutOrganizationInput[] | ApiKeyUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: ApiKeyCreateOrConnectWithoutOrganizationInput | ApiKeyCreateOrConnectWithoutOrganizationInput[]
    createMany?: ApiKeyCreateManyOrganizationInputEnvelope
    connect?: ApiKeyWhereUniqueInput | ApiKeyWhereUniqueInput[]
  }

  export type CartCreateNestedOneWithoutOrganizationInput = {
    create?: XOR<CartCreateWithoutOrganizationInput, CartUncheckedCreateWithoutOrganizationInput>
    connectOrCreate?: CartCreateOrConnectWithoutOrganizationInput
    connect?: CartWhereUniqueInput
  }

  export type CounterpartyCreateNestedManyWithoutCounterpartyInput = {
    create?: XOR<CounterpartyCreateWithoutCounterpartyInput, CounterpartyUncheckedCreateWithoutCounterpartyInput> | CounterpartyCreateWithoutCounterpartyInput[] | CounterpartyUncheckedCreateWithoutCounterpartyInput[]
    connectOrCreate?: CounterpartyCreateOrConnectWithoutCounterpartyInput | CounterpartyCreateOrConnectWithoutCounterpartyInput[]
    createMany?: CounterpartyCreateManyCounterpartyInputEnvelope
    connect?: CounterpartyWhereUniqueInput | CounterpartyWhereUniqueInput[]
  }

  export type CounterpartyCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<CounterpartyCreateWithoutOrganizationInput, CounterpartyUncheckedCreateWithoutOrganizationInput> | CounterpartyCreateWithoutOrganizationInput[] | CounterpartyUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: CounterpartyCreateOrConnectWithoutOrganizationInput | CounterpartyCreateOrConnectWithoutOrganizationInput[]
    createMany?: CounterpartyCreateManyOrganizationInputEnvelope
    connect?: CounterpartyWhereUniqueInput | CounterpartyWhereUniqueInput[]
  }

  export type CounterpartyRequestCreateNestedManyWithoutReceiverInput = {
    create?: XOR<CounterpartyRequestCreateWithoutReceiverInput, CounterpartyRequestUncheckedCreateWithoutReceiverInput> | CounterpartyRequestCreateWithoutReceiverInput[] | CounterpartyRequestUncheckedCreateWithoutReceiverInput[]
    connectOrCreate?: CounterpartyRequestCreateOrConnectWithoutReceiverInput | CounterpartyRequestCreateOrConnectWithoutReceiverInput[]
    createMany?: CounterpartyRequestCreateManyReceiverInputEnvelope
    connect?: CounterpartyRequestWhereUniqueInput | CounterpartyRequestWhereUniqueInput[]
  }

  export type CounterpartyRequestCreateNestedManyWithoutSenderInput = {
    create?: XOR<CounterpartyRequestCreateWithoutSenderInput, CounterpartyRequestUncheckedCreateWithoutSenderInput> | CounterpartyRequestCreateWithoutSenderInput[] | CounterpartyRequestUncheckedCreateWithoutSenderInput[]
    connectOrCreate?: CounterpartyRequestCreateOrConnectWithoutSenderInput | CounterpartyRequestCreateOrConnectWithoutSenderInput[]
    createMany?: CounterpartyRequestCreateManySenderInputEnvelope
    connect?: CounterpartyRequestWhereUniqueInput | CounterpartyRequestWhereUniqueInput[]
  }

  export type EmployeeCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<EmployeeCreateWithoutOrganizationInput, EmployeeUncheckedCreateWithoutOrganizationInput> | EmployeeCreateWithoutOrganizationInput[] | EmployeeUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: EmployeeCreateOrConnectWithoutOrganizationInput | EmployeeCreateOrConnectWithoutOrganizationInput[]
    createMany?: EmployeeCreateManyOrganizationInputEnvelope
    connect?: EmployeeWhereUniqueInput | EmployeeWhereUniqueInput[]
  }

  export type FavoritesCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<FavoritesCreateWithoutOrganizationInput, FavoritesUncheckedCreateWithoutOrganizationInput> | FavoritesCreateWithoutOrganizationInput[] | FavoritesUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: FavoritesCreateOrConnectWithoutOrganizationInput | FavoritesCreateOrConnectWithoutOrganizationInput[]
    createMany?: FavoritesCreateManyOrganizationInputEnvelope
    connect?: FavoritesWhereUniqueInput | FavoritesWhereUniqueInput[]
  }

  export type MessageCreateNestedManyWithoutReceiverOrganizationInput = {
    create?: XOR<MessageCreateWithoutReceiverOrganizationInput, MessageUncheckedCreateWithoutReceiverOrganizationInput> | MessageCreateWithoutReceiverOrganizationInput[] | MessageUncheckedCreateWithoutReceiverOrganizationInput[]
    connectOrCreate?: MessageCreateOrConnectWithoutReceiverOrganizationInput | MessageCreateOrConnectWithoutReceiverOrganizationInput[]
    createMany?: MessageCreateManyReceiverOrganizationInputEnvelope
    connect?: MessageWhereUniqueInput | MessageWhereUniqueInput[]
  }

  export type MessageCreateNestedManyWithoutSenderOrganizationInput = {
    create?: XOR<MessageCreateWithoutSenderOrganizationInput, MessageUncheckedCreateWithoutSenderOrganizationInput> | MessageCreateWithoutSenderOrganizationInput[] | MessageUncheckedCreateWithoutSenderOrganizationInput[]
    connectOrCreate?: MessageCreateOrConnectWithoutSenderOrganizationInput | MessageCreateOrConnectWithoutSenderOrganizationInput[]
    createMany?: MessageCreateManySenderOrganizationInputEnvelope
    connect?: MessageWhereUniqueInput | MessageWhereUniqueInput[]
  }

  export type ProductCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<ProductCreateWithoutOrganizationInput, ProductUncheckedCreateWithoutOrganizationInput> | ProductCreateWithoutOrganizationInput[] | ProductUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: ProductCreateOrConnectWithoutOrganizationInput | ProductCreateOrConnectWithoutOrganizationInput[]
    createMany?: ProductCreateManyOrganizationInputEnvelope
    connect?: ProductWhereUniqueInput | ProductWhereUniqueInput[]
  }

  export type ServiceCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<ServiceCreateWithoutOrganizationInput, ServiceUncheckedCreateWithoutOrganizationInput> | ServiceCreateWithoutOrganizationInput[] | ServiceUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: ServiceCreateOrConnectWithoutOrganizationInput | ServiceCreateOrConnectWithoutOrganizationInput[]
    createMany?: ServiceCreateManyOrganizationInputEnvelope
    connect?: ServiceWhereUniqueInput | ServiceWhereUniqueInput[]
  }

  export type SupplyCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<SupplyCreateWithoutOrganizationInput, SupplyUncheckedCreateWithoutOrganizationInput> | SupplyCreateWithoutOrganizationInput[] | SupplyUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: SupplyCreateOrConnectWithoutOrganizationInput | SupplyCreateOrConnectWithoutOrganizationInput[]
    createMany?: SupplyCreateManyOrganizationInputEnvelope
    connect?: SupplyWhereUniqueInput | SupplyWhereUniqueInput[]
  }

  export type UserCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<UserCreateWithoutOrganizationInput, UserUncheckedCreateWithoutOrganizationInput> | UserCreateWithoutOrganizationInput[] | UserUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: UserCreateOrConnectWithoutOrganizationInput | UserCreateOrConnectWithoutOrganizationInput[]
    createMany?: UserCreateManyOrganizationInputEnvelope
    connect?: UserWhereUniqueInput | UserWhereUniqueInput[]
  }

  export type LogisticsCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<LogisticsCreateWithoutOrganizationInput, LogisticsUncheckedCreateWithoutOrganizationInput> | LogisticsCreateWithoutOrganizationInput[] | LogisticsUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: LogisticsCreateOrConnectWithoutOrganizationInput | LogisticsCreateOrConnectWithoutOrganizationInput[]
    createMany?: LogisticsCreateManyOrganizationInputEnvelope
    connect?: LogisticsWhereUniqueInput | LogisticsWhereUniqueInput[]
  }

  export type SupplyOrderCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<SupplyOrderCreateWithoutOrganizationInput, SupplyOrderUncheckedCreateWithoutOrganizationInput> | SupplyOrderCreateWithoutOrganizationInput[] | SupplyOrderUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: SupplyOrderCreateOrConnectWithoutOrganizationInput | SupplyOrderCreateOrConnectWithoutOrganizationInput[]
    createMany?: SupplyOrderCreateManyOrganizationInputEnvelope
    connect?: SupplyOrderWhereUniqueInput | SupplyOrderWhereUniqueInput[]
  }

  export type SupplyOrderCreateNestedManyWithoutPartnerInput = {
    create?: XOR<SupplyOrderCreateWithoutPartnerInput, SupplyOrderUncheckedCreateWithoutPartnerInput> | SupplyOrderCreateWithoutPartnerInput[] | SupplyOrderUncheckedCreateWithoutPartnerInput[]
    connectOrCreate?: SupplyOrderCreateOrConnectWithoutPartnerInput | SupplyOrderCreateOrConnectWithoutPartnerInput[]
    createMany?: SupplyOrderCreateManyPartnerInputEnvelope
    connect?: SupplyOrderWhereUniqueInput | SupplyOrderWhereUniqueInput[]
  }

  export type SupplyOrderCreateNestedManyWithoutFulfillmentCenterInput = {
    create?: XOR<SupplyOrderCreateWithoutFulfillmentCenterInput, SupplyOrderUncheckedCreateWithoutFulfillmentCenterInput> | SupplyOrderCreateWithoutFulfillmentCenterInput[] | SupplyOrderUncheckedCreateWithoutFulfillmentCenterInput[]
    connectOrCreate?: SupplyOrderCreateOrConnectWithoutFulfillmentCenterInput | SupplyOrderCreateOrConnectWithoutFulfillmentCenterInput[]
    createMany?: SupplyOrderCreateManyFulfillmentCenterInputEnvelope
    connect?: SupplyOrderWhereUniqueInput | SupplyOrderWhereUniqueInput[]
  }

  export type WildberriesSupplyCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<WildberriesSupplyCreateWithoutOrganizationInput, WildberriesSupplyUncheckedCreateWithoutOrganizationInput> | WildberriesSupplyCreateWithoutOrganizationInput[] | WildberriesSupplyUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: WildberriesSupplyCreateOrConnectWithoutOrganizationInput | WildberriesSupplyCreateOrConnectWithoutOrganizationInput[]
    createMany?: WildberriesSupplyCreateManyOrganizationInputEnvelope
    connect?: WildberriesSupplyWhereUniqueInput | WildberriesSupplyWhereUniqueInput[]
  }

  export type SupplySupplierCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<SupplySupplierCreateWithoutOrganizationInput, SupplySupplierUncheckedCreateWithoutOrganizationInput> | SupplySupplierCreateWithoutOrganizationInput[] | SupplySupplierUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: SupplySupplierCreateOrConnectWithoutOrganizationInput | SupplySupplierCreateOrConnectWithoutOrganizationInput[]
    createMany?: SupplySupplierCreateManyOrganizationInputEnvelope
    connect?: SupplySupplierWhereUniqueInput | SupplySupplierWhereUniqueInput[]
  }

  export type ApiKeyUncheckedCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<ApiKeyCreateWithoutOrganizationInput, ApiKeyUncheckedCreateWithoutOrganizationInput> | ApiKeyCreateWithoutOrganizationInput[] | ApiKeyUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: ApiKeyCreateOrConnectWithoutOrganizationInput | ApiKeyCreateOrConnectWithoutOrganizationInput[]
    createMany?: ApiKeyCreateManyOrganizationInputEnvelope
    connect?: ApiKeyWhereUniqueInput | ApiKeyWhereUniqueInput[]
  }

  export type CartUncheckedCreateNestedOneWithoutOrganizationInput = {
    create?: XOR<CartCreateWithoutOrganizationInput, CartUncheckedCreateWithoutOrganizationInput>
    connectOrCreate?: CartCreateOrConnectWithoutOrganizationInput
    connect?: CartWhereUniqueInput
  }

  export type CounterpartyUncheckedCreateNestedManyWithoutCounterpartyInput = {
    create?: XOR<CounterpartyCreateWithoutCounterpartyInput, CounterpartyUncheckedCreateWithoutCounterpartyInput> | CounterpartyCreateWithoutCounterpartyInput[] | CounterpartyUncheckedCreateWithoutCounterpartyInput[]
    connectOrCreate?: CounterpartyCreateOrConnectWithoutCounterpartyInput | CounterpartyCreateOrConnectWithoutCounterpartyInput[]
    createMany?: CounterpartyCreateManyCounterpartyInputEnvelope
    connect?: CounterpartyWhereUniqueInput | CounterpartyWhereUniqueInput[]
  }

  export type CounterpartyUncheckedCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<CounterpartyCreateWithoutOrganizationInput, CounterpartyUncheckedCreateWithoutOrganizationInput> | CounterpartyCreateWithoutOrganizationInput[] | CounterpartyUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: CounterpartyCreateOrConnectWithoutOrganizationInput | CounterpartyCreateOrConnectWithoutOrganizationInput[]
    createMany?: CounterpartyCreateManyOrganizationInputEnvelope
    connect?: CounterpartyWhereUniqueInput | CounterpartyWhereUniqueInput[]
  }

  export type CounterpartyRequestUncheckedCreateNestedManyWithoutReceiverInput = {
    create?: XOR<CounterpartyRequestCreateWithoutReceiverInput, CounterpartyRequestUncheckedCreateWithoutReceiverInput> | CounterpartyRequestCreateWithoutReceiverInput[] | CounterpartyRequestUncheckedCreateWithoutReceiverInput[]
    connectOrCreate?: CounterpartyRequestCreateOrConnectWithoutReceiverInput | CounterpartyRequestCreateOrConnectWithoutReceiverInput[]
    createMany?: CounterpartyRequestCreateManyReceiverInputEnvelope
    connect?: CounterpartyRequestWhereUniqueInput | CounterpartyRequestWhereUniqueInput[]
  }

  export type CounterpartyRequestUncheckedCreateNestedManyWithoutSenderInput = {
    create?: XOR<CounterpartyRequestCreateWithoutSenderInput, CounterpartyRequestUncheckedCreateWithoutSenderInput> | CounterpartyRequestCreateWithoutSenderInput[] | CounterpartyRequestUncheckedCreateWithoutSenderInput[]
    connectOrCreate?: CounterpartyRequestCreateOrConnectWithoutSenderInput | CounterpartyRequestCreateOrConnectWithoutSenderInput[]
    createMany?: CounterpartyRequestCreateManySenderInputEnvelope
    connect?: CounterpartyRequestWhereUniqueInput | CounterpartyRequestWhereUniqueInput[]
  }

  export type EmployeeUncheckedCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<EmployeeCreateWithoutOrganizationInput, EmployeeUncheckedCreateWithoutOrganizationInput> | EmployeeCreateWithoutOrganizationInput[] | EmployeeUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: EmployeeCreateOrConnectWithoutOrganizationInput | EmployeeCreateOrConnectWithoutOrganizationInput[]
    createMany?: EmployeeCreateManyOrganizationInputEnvelope
    connect?: EmployeeWhereUniqueInput | EmployeeWhereUniqueInput[]
  }

  export type FavoritesUncheckedCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<FavoritesCreateWithoutOrganizationInput, FavoritesUncheckedCreateWithoutOrganizationInput> | FavoritesCreateWithoutOrganizationInput[] | FavoritesUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: FavoritesCreateOrConnectWithoutOrganizationInput | FavoritesCreateOrConnectWithoutOrganizationInput[]
    createMany?: FavoritesCreateManyOrganizationInputEnvelope
    connect?: FavoritesWhereUniqueInput | FavoritesWhereUniqueInput[]
  }

  export type MessageUncheckedCreateNestedManyWithoutReceiverOrganizationInput = {
    create?: XOR<MessageCreateWithoutReceiverOrganizationInput, MessageUncheckedCreateWithoutReceiverOrganizationInput> | MessageCreateWithoutReceiverOrganizationInput[] | MessageUncheckedCreateWithoutReceiverOrganizationInput[]
    connectOrCreate?: MessageCreateOrConnectWithoutReceiverOrganizationInput | MessageCreateOrConnectWithoutReceiverOrganizationInput[]
    createMany?: MessageCreateManyReceiverOrganizationInputEnvelope
    connect?: MessageWhereUniqueInput | MessageWhereUniqueInput[]
  }

  export type MessageUncheckedCreateNestedManyWithoutSenderOrganizationInput = {
    create?: XOR<MessageCreateWithoutSenderOrganizationInput, MessageUncheckedCreateWithoutSenderOrganizationInput> | MessageCreateWithoutSenderOrganizationInput[] | MessageUncheckedCreateWithoutSenderOrganizationInput[]
    connectOrCreate?: MessageCreateOrConnectWithoutSenderOrganizationInput | MessageCreateOrConnectWithoutSenderOrganizationInput[]
    createMany?: MessageCreateManySenderOrganizationInputEnvelope
    connect?: MessageWhereUniqueInput | MessageWhereUniqueInput[]
  }

  export type ProductUncheckedCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<ProductCreateWithoutOrganizationInput, ProductUncheckedCreateWithoutOrganizationInput> | ProductCreateWithoutOrganizationInput[] | ProductUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: ProductCreateOrConnectWithoutOrganizationInput | ProductCreateOrConnectWithoutOrganizationInput[]
    createMany?: ProductCreateManyOrganizationInputEnvelope
    connect?: ProductWhereUniqueInput | ProductWhereUniqueInput[]
  }

  export type ServiceUncheckedCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<ServiceCreateWithoutOrganizationInput, ServiceUncheckedCreateWithoutOrganizationInput> | ServiceCreateWithoutOrganizationInput[] | ServiceUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: ServiceCreateOrConnectWithoutOrganizationInput | ServiceCreateOrConnectWithoutOrganizationInput[]
    createMany?: ServiceCreateManyOrganizationInputEnvelope
    connect?: ServiceWhereUniqueInput | ServiceWhereUniqueInput[]
  }

  export type SupplyUncheckedCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<SupplyCreateWithoutOrganizationInput, SupplyUncheckedCreateWithoutOrganizationInput> | SupplyCreateWithoutOrganizationInput[] | SupplyUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: SupplyCreateOrConnectWithoutOrganizationInput | SupplyCreateOrConnectWithoutOrganizationInput[]
    createMany?: SupplyCreateManyOrganizationInputEnvelope
    connect?: SupplyWhereUniqueInput | SupplyWhereUniqueInput[]
  }

  export type UserUncheckedCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<UserCreateWithoutOrganizationInput, UserUncheckedCreateWithoutOrganizationInput> | UserCreateWithoutOrganizationInput[] | UserUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: UserCreateOrConnectWithoutOrganizationInput | UserCreateOrConnectWithoutOrganizationInput[]
    createMany?: UserCreateManyOrganizationInputEnvelope
    connect?: UserWhereUniqueInput | UserWhereUniqueInput[]
  }

  export type LogisticsUncheckedCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<LogisticsCreateWithoutOrganizationInput, LogisticsUncheckedCreateWithoutOrganizationInput> | LogisticsCreateWithoutOrganizationInput[] | LogisticsUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: LogisticsCreateOrConnectWithoutOrganizationInput | LogisticsCreateOrConnectWithoutOrganizationInput[]
    createMany?: LogisticsCreateManyOrganizationInputEnvelope
    connect?: LogisticsWhereUniqueInput | LogisticsWhereUniqueInput[]
  }

  export type SupplyOrderUncheckedCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<SupplyOrderCreateWithoutOrganizationInput, SupplyOrderUncheckedCreateWithoutOrganizationInput> | SupplyOrderCreateWithoutOrganizationInput[] | SupplyOrderUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: SupplyOrderCreateOrConnectWithoutOrganizationInput | SupplyOrderCreateOrConnectWithoutOrganizationInput[]
    createMany?: SupplyOrderCreateManyOrganizationInputEnvelope
    connect?: SupplyOrderWhereUniqueInput | SupplyOrderWhereUniqueInput[]
  }

  export type SupplyOrderUncheckedCreateNestedManyWithoutPartnerInput = {
    create?: XOR<SupplyOrderCreateWithoutPartnerInput, SupplyOrderUncheckedCreateWithoutPartnerInput> | SupplyOrderCreateWithoutPartnerInput[] | SupplyOrderUncheckedCreateWithoutPartnerInput[]
    connectOrCreate?: SupplyOrderCreateOrConnectWithoutPartnerInput | SupplyOrderCreateOrConnectWithoutPartnerInput[]
    createMany?: SupplyOrderCreateManyPartnerInputEnvelope
    connect?: SupplyOrderWhereUniqueInput | SupplyOrderWhereUniqueInput[]
  }

  export type SupplyOrderUncheckedCreateNestedManyWithoutFulfillmentCenterInput = {
    create?: XOR<SupplyOrderCreateWithoutFulfillmentCenterInput, SupplyOrderUncheckedCreateWithoutFulfillmentCenterInput> | SupplyOrderCreateWithoutFulfillmentCenterInput[] | SupplyOrderUncheckedCreateWithoutFulfillmentCenterInput[]
    connectOrCreate?: SupplyOrderCreateOrConnectWithoutFulfillmentCenterInput | SupplyOrderCreateOrConnectWithoutFulfillmentCenterInput[]
    createMany?: SupplyOrderCreateManyFulfillmentCenterInputEnvelope
    connect?: SupplyOrderWhereUniqueInput | SupplyOrderWhereUniqueInput[]
  }

  export type WildberriesSupplyUncheckedCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<WildberriesSupplyCreateWithoutOrganizationInput, WildberriesSupplyUncheckedCreateWithoutOrganizationInput> | WildberriesSupplyCreateWithoutOrganizationInput[] | WildberriesSupplyUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: WildberriesSupplyCreateOrConnectWithoutOrganizationInput | WildberriesSupplyCreateOrConnectWithoutOrganizationInput[]
    createMany?: WildberriesSupplyCreateManyOrganizationInputEnvelope
    connect?: WildberriesSupplyWhereUniqueInput | WildberriesSupplyWhereUniqueInput[]
  }

  export type SupplySupplierUncheckedCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<SupplySupplierCreateWithoutOrganizationInput, SupplySupplierUncheckedCreateWithoutOrganizationInput> | SupplySupplierCreateWithoutOrganizationInput[] | SupplySupplierUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: SupplySupplierCreateOrConnectWithoutOrganizationInput | SupplySupplierCreateOrConnectWithoutOrganizationInput[]
    createMany?: SupplySupplierCreateManyOrganizationInputEnvelope
    connect?: SupplySupplierWhereUniqueInput | SupplySupplierWhereUniqueInput[]
  }

  export type EnumOrganizationTypeFieldUpdateOperationsInput = {
    set?: $Enums.OrganizationType
  }

  export type NullableIntFieldUpdateOperationsInput = {
    set?: number | null
    increment?: number
    decrement?: number
    multiply?: number
    divide?: number
  }

  export type NullableBigIntFieldUpdateOperationsInput = {
    set?: bigint | number | null
    increment?: bigint | number
    decrement?: bigint | number
    multiply?: bigint | number
    divide?: bigint | number
  }

  export type ApiKeyUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<ApiKeyCreateWithoutOrganizationInput, ApiKeyUncheckedCreateWithoutOrganizationInput> | ApiKeyCreateWithoutOrganizationInput[] | ApiKeyUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: ApiKeyCreateOrConnectWithoutOrganizationInput | ApiKeyCreateOrConnectWithoutOrganizationInput[]
    upsert?: ApiKeyUpsertWithWhereUniqueWithoutOrganizationInput | ApiKeyUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: ApiKeyCreateManyOrganizationInputEnvelope
    set?: ApiKeyWhereUniqueInput | ApiKeyWhereUniqueInput[]
    disconnect?: ApiKeyWhereUniqueInput | ApiKeyWhereUniqueInput[]
    delete?: ApiKeyWhereUniqueInput | ApiKeyWhereUniqueInput[]
    connect?: ApiKeyWhereUniqueInput | ApiKeyWhereUniqueInput[]
    update?: ApiKeyUpdateWithWhereUniqueWithoutOrganizationInput | ApiKeyUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: ApiKeyUpdateManyWithWhereWithoutOrganizationInput | ApiKeyUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: ApiKeyScalarWhereInput | ApiKeyScalarWhereInput[]
  }

  export type CartUpdateOneWithoutOrganizationNestedInput = {
    create?: XOR<CartCreateWithoutOrganizationInput, CartUncheckedCreateWithoutOrganizationInput>
    connectOrCreate?: CartCreateOrConnectWithoutOrganizationInput
    upsert?: CartUpsertWithoutOrganizationInput
    disconnect?: CartWhereInput | boolean
    delete?: CartWhereInput | boolean
    connect?: CartWhereUniqueInput
    update?: XOR<XOR<CartUpdateToOneWithWhereWithoutOrganizationInput, CartUpdateWithoutOrganizationInput>, CartUncheckedUpdateWithoutOrganizationInput>
  }

  export type CounterpartyUpdateManyWithoutCounterpartyNestedInput = {
    create?: XOR<CounterpartyCreateWithoutCounterpartyInput, CounterpartyUncheckedCreateWithoutCounterpartyInput> | CounterpartyCreateWithoutCounterpartyInput[] | CounterpartyUncheckedCreateWithoutCounterpartyInput[]
    connectOrCreate?: CounterpartyCreateOrConnectWithoutCounterpartyInput | CounterpartyCreateOrConnectWithoutCounterpartyInput[]
    upsert?: CounterpartyUpsertWithWhereUniqueWithoutCounterpartyInput | CounterpartyUpsertWithWhereUniqueWithoutCounterpartyInput[]
    createMany?: CounterpartyCreateManyCounterpartyInputEnvelope
    set?: CounterpartyWhereUniqueInput | CounterpartyWhereUniqueInput[]
    disconnect?: CounterpartyWhereUniqueInput | CounterpartyWhereUniqueInput[]
    delete?: CounterpartyWhereUniqueInput | CounterpartyWhereUniqueInput[]
    connect?: CounterpartyWhereUniqueInput | CounterpartyWhereUniqueInput[]
    update?: CounterpartyUpdateWithWhereUniqueWithoutCounterpartyInput | CounterpartyUpdateWithWhereUniqueWithoutCounterpartyInput[]
    updateMany?: CounterpartyUpdateManyWithWhereWithoutCounterpartyInput | CounterpartyUpdateManyWithWhereWithoutCounterpartyInput[]
    deleteMany?: CounterpartyScalarWhereInput | CounterpartyScalarWhereInput[]
  }

  export type CounterpartyUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<CounterpartyCreateWithoutOrganizationInput, CounterpartyUncheckedCreateWithoutOrganizationInput> | CounterpartyCreateWithoutOrganizationInput[] | CounterpartyUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: CounterpartyCreateOrConnectWithoutOrganizationInput | CounterpartyCreateOrConnectWithoutOrganizationInput[]
    upsert?: CounterpartyUpsertWithWhereUniqueWithoutOrganizationInput | CounterpartyUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: CounterpartyCreateManyOrganizationInputEnvelope
    set?: CounterpartyWhereUniqueInput | CounterpartyWhereUniqueInput[]
    disconnect?: CounterpartyWhereUniqueInput | CounterpartyWhereUniqueInput[]
    delete?: CounterpartyWhereUniqueInput | CounterpartyWhereUniqueInput[]
    connect?: CounterpartyWhereUniqueInput | CounterpartyWhereUniqueInput[]
    update?: CounterpartyUpdateWithWhereUniqueWithoutOrganizationInput | CounterpartyUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: CounterpartyUpdateManyWithWhereWithoutOrganizationInput | CounterpartyUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: CounterpartyScalarWhereInput | CounterpartyScalarWhereInput[]
  }

  export type CounterpartyRequestUpdateManyWithoutReceiverNestedInput = {
    create?: XOR<CounterpartyRequestCreateWithoutReceiverInput, CounterpartyRequestUncheckedCreateWithoutReceiverInput> | CounterpartyRequestCreateWithoutReceiverInput[] | CounterpartyRequestUncheckedCreateWithoutReceiverInput[]
    connectOrCreate?: CounterpartyRequestCreateOrConnectWithoutReceiverInput | CounterpartyRequestCreateOrConnectWithoutReceiverInput[]
    upsert?: CounterpartyRequestUpsertWithWhereUniqueWithoutReceiverInput | CounterpartyRequestUpsertWithWhereUniqueWithoutReceiverInput[]
    createMany?: CounterpartyRequestCreateManyReceiverInputEnvelope
    set?: CounterpartyRequestWhereUniqueInput | CounterpartyRequestWhereUniqueInput[]
    disconnect?: CounterpartyRequestWhereUniqueInput | CounterpartyRequestWhereUniqueInput[]
    delete?: CounterpartyRequestWhereUniqueInput | CounterpartyRequestWhereUniqueInput[]
    connect?: CounterpartyRequestWhereUniqueInput | CounterpartyRequestWhereUniqueInput[]
    update?: CounterpartyRequestUpdateWithWhereUniqueWithoutReceiverInput | CounterpartyRequestUpdateWithWhereUniqueWithoutReceiverInput[]
    updateMany?: CounterpartyRequestUpdateManyWithWhereWithoutReceiverInput | CounterpartyRequestUpdateManyWithWhereWithoutReceiverInput[]
    deleteMany?: CounterpartyRequestScalarWhereInput | CounterpartyRequestScalarWhereInput[]
  }

  export type CounterpartyRequestUpdateManyWithoutSenderNestedInput = {
    create?: XOR<CounterpartyRequestCreateWithoutSenderInput, CounterpartyRequestUncheckedCreateWithoutSenderInput> | CounterpartyRequestCreateWithoutSenderInput[] | CounterpartyRequestUncheckedCreateWithoutSenderInput[]
    connectOrCreate?: CounterpartyRequestCreateOrConnectWithoutSenderInput | CounterpartyRequestCreateOrConnectWithoutSenderInput[]
    upsert?: CounterpartyRequestUpsertWithWhereUniqueWithoutSenderInput | CounterpartyRequestUpsertWithWhereUniqueWithoutSenderInput[]
    createMany?: CounterpartyRequestCreateManySenderInputEnvelope
    set?: CounterpartyRequestWhereUniqueInput | CounterpartyRequestWhereUniqueInput[]
    disconnect?: CounterpartyRequestWhereUniqueInput | CounterpartyRequestWhereUniqueInput[]
    delete?: CounterpartyRequestWhereUniqueInput | CounterpartyRequestWhereUniqueInput[]
    connect?: CounterpartyRequestWhereUniqueInput | CounterpartyRequestWhereUniqueInput[]
    update?: CounterpartyRequestUpdateWithWhereUniqueWithoutSenderInput | CounterpartyRequestUpdateWithWhereUniqueWithoutSenderInput[]
    updateMany?: CounterpartyRequestUpdateManyWithWhereWithoutSenderInput | CounterpartyRequestUpdateManyWithWhereWithoutSenderInput[]
    deleteMany?: CounterpartyRequestScalarWhereInput | CounterpartyRequestScalarWhereInput[]
  }

  export type EmployeeUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<EmployeeCreateWithoutOrganizationInput, EmployeeUncheckedCreateWithoutOrganizationInput> | EmployeeCreateWithoutOrganizationInput[] | EmployeeUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: EmployeeCreateOrConnectWithoutOrganizationInput | EmployeeCreateOrConnectWithoutOrganizationInput[]
    upsert?: EmployeeUpsertWithWhereUniqueWithoutOrganizationInput | EmployeeUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: EmployeeCreateManyOrganizationInputEnvelope
    set?: EmployeeWhereUniqueInput | EmployeeWhereUniqueInput[]
    disconnect?: EmployeeWhereUniqueInput | EmployeeWhereUniqueInput[]
    delete?: EmployeeWhereUniqueInput | EmployeeWhereUniqueInput[]
    connect?: EmployeeWhereUniqueInput | EmployeeWhereUniqueInput[]
    update?: EmployeeUpdateWithWhereUniqueWithoutOrganizationInput | EmployeeUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: EmployeeUpdateManyWithWhereWithoutOrganizationInput | EmployeeUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: EmployeeScalarWhereInput | EmployeeScalarWhereInput[]
  }

  export type FavoritesUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<FavoritesCreateWithoutOrganizationInput, FavoritesUncheckedCreateWithoutOrganizationInput> | FavoritesCreateWithoutOrganizationInput[] | FavoritesUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: FavoritesCreateOrConnectWithoutOrganizationInput | FavoritesCreateOrConnectWithoutOrganizationInput[]
    upsert?: FavoritesUpsertWithWhereUniqueWithoutOrganizationInput | FavoritesUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: FavoritesCreateManyOrganizationInputEnvelope
    set?: FavoritesWhereUniqueInput | FavoritesWhereUniqueInput[]
    disconnect?: FavoritesWhereUniqueInput | FavoritesWhereUniqueInput[]
    delete?: FavoritesWhereUniqueInput | FavoritesWhereUniqueInput[]
    connect?: FavoritesWhereUniqueInput | FavoritesWhereUniqueInput[]
    update?: FavoritesUpdateWithWhereUniqueWithoutOrganizationInput | FavoritesUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: FavoritesUpdateManyWithWhereWithoutOrganizationInput | FavoritesUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: FavoritesScalarWhereInput | FavoritesScalarWhereInput[]
  }

  export type MessageUpdateManyWithoutReceiverOrganizationNestedInput = {
    create?: XOR<MessageCreateWithoutReceiverOrganizationInput, MessageUncheckedCreateWithoutReceiverOrganizationInput> | MessageCreateWithoutReceiverOrganizationInput[] | MessageUncheckedCreateWithoutReceiverOrganizationInput[]
    connectOrCreate?: MessageCreateOrConnectWithoutReceiverOrganizationInput | MessageCreateOrConnectWithoutReceiverOrganizationInput[]
    upsert?: MessageUpsertWithWhereUniqueWithoutReceiverOrganizationInput | MessageUpsertWithWhereUniqueWithoutReceiverOrganizationInput[]
    createMany?: MessageCreateManyReceiverOrganizationInputEnvelope
    set?: MessageWhereUniqueInput | MessageWhereUniqueInput[]
    disconnect?: MessageWhereUniqueInput | MessageWhereUniqueInput[]
    delete?: MessageWhereUniqueInput | MessageWhereUniqueInput[]
    connect?: MessageWhereUniqueInput | MessageWhereUniqueInput[]
    update?: MessageUpdateWithWhereUniqueWithoutReceiverOrganizationInput | MessageUpdateWithWhereUniqueWithoutReceiverOrganizationInput[]
    updateMany?: MessageUpdateManyWithWhereWithoutReceiverOrganizationInput | MessageUpdateManyWithWhereWithoutReceiverOrganizationInput[]
    deleteMany?: MessageScalarWhereInput | MessageScalarWhereInput[]
  }

  export type MessageUpdateManyWithoutSenderOrganizationNestedInput = {
    create?: XOR<MessageCreateWithoutSenderOrganizationInput, MessageUncheckedCreateWithoutSenderOrganizationInput> | MessageCreateWithoutSenderOrganizationInput[] | MessageUncheckedCreateWithoutSenderOrganizationInput[]
    connectOrCreate?: MessageCreateOrConnectWithoutSenderOrganizationInput | MessageCreateOrConnectWithoutSenderOrganizationInput[]
    upsert?: MessageUpsertWithWhereUniqueWithoutSenderOrganizationInput | MessageUpsertWithWhereUniqueWithoutSenderOrganizationInput[]
    createMany?: MessageCreateManySenderOrganizationInputEnvelope
    set?: MessageWhereUniqueInput | MessageWhereUniqueInput[]
    disconnect?: MessageWhereUniqueInput | MessageWhereUniqueInput[]
    delete?: MessageWhereUniqueInput | MessageWhereUniqueInput[]
    connect?: MessageWhereUniqueInput | MessageWhereUniqueInput[]
    update?: MessageUpdateWithWhereUniqueWithoutSenderOrganizationInput | MessageUpdateWithWhereUniqueWithoutSenderOrganizationInput[]
    updateMany?: MessageUpdateManyWithWhereWithoutSenderOrganizationInput | MessageUpdateManyWithWhereWithoutSenderOrganizationInput[]
    deleteMany?: MessageScalarWhereInput | MessageScalarWhereInput[]
  }

  export type ProductUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<ProductCreateWithoutOrganizationInput, ProductUncheckedCreateWithoutOrganizationInput> | ProductCreateWithoutOrganizationInput[] | ProductUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: ProductCreateOrConnectWithoutOrganizationInput | ProductCreateOrConnectWithoutOrganizationInput[]
    upsert?: ProductUpsertWithWhereUniqueWithoutOrganizationInput | ProductUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: ProductCreateManyOrganizationInputEnvelope
    set?: ProductWhereUniqueInput | ProductWhereUniqueInput[]
    disconnect?: ProductWhereUniqueInput | ProductWhereUniqueInput[]
    delete?: ProductWhereUniqueInput | ProductWhereUniqueInput[]
    connect?: ProductWhereUniqueInput | ProductWhereUniqueInput[]
    update?: ProductUpdateWithWhereUniqueWithoutOrganizationInput | ProductUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: ProductUpdateManyWithWhereWithoutOrganizationInput | ProductUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: ProductScalarWhereInput | ProductScalarWhereInput[]
  }

  export type ServiceUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<ServiceCreateWithoutOrganizationInput, ServiceUncheckedCreateWithoutOrganizationInput> | ServiceCreateWithoutOrganizationInput[] | ServiceUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: ServiceCreateOrConnectWithoutOrganizationInput | ServiceCreateOrConnectWithoutOrganizationInput[]
    upsert?: ServiceUpsertWithWhereUniqueWithoutOrganizationInput | ServiceUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: ServiceCreateManyOrganizationInputEnvelope
    set?: ServiceWhereUniqueInput | ServiceWhereUniqueInput[]
    disconnect?: ServiceWhereUniqueInput | ServiceWhereUniqueInput[]
    delete?: ServiceWhereUniqueInput | ServiceWhereUniqueInput[]
    connect?: ServiceWhereUniqueInput | ServiceWhereUniqueInput[]
    update?: ServiceUpdateWithWhereUniqueWithoutOrganizationInput | ServiceUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: ServiceUpdateManyWithWhereWithoutOrganizationInput | ServiceUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: ServiceScalarWhereInput | ServiceScalarWhereInput[]
  }

  export type SupplyUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<SupplyCreateWithoutOrganizationInput, SupplyUncheckedCreateWithoutOrganizationInput> | SupplyCreateWithoutOrganizationInput[] | SupplyUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: SupplyCreateOrConnectWithoutOrganizationInput | SupplyCreateOrConnectWithoutOrganizationInput[]
    upsert?: SupplyUpsertWithWhereUniqueWithoutOrganizationInput | SupplyUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: SupplyCreateManyOrganizationInputEnvelope
    set?: SupplyWhereUniqueInput | SupplyWhereUniqueInput[]
    disconnect?: SupplyWhereUniqueInput | SupplyWhereUniqueInput[]
    delete?: SupplyWhereUniqueInput | SupplyWhereUniqueInput[]
    connect?: SupplyWhereUniqueInput | SupplyWhereUniqueInput[]
    update?: SupplyUpdateWithWhereUniqueWithoutOrganizationInput | SupplyUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: SupplyUpdateManyWithWhereWithoutOrganizationInput | SupplyUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: SupplyScalarWhereInput | SupplyScalarWhereInput[]
  }

  export type UserUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<UserCreateWithoutOrganizationInput, UserUncheckedCreateWithoutOrganizationInput> | UserCreateWithoutOrganizationInput[] | UserUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: UserCreateOrConnectWithoutOrganizationInput | UserCreateOrConnectWithoutOrganizationInput[]
    upsert?: UserUpsertWithWhereUniqueWithoutOrganizationInput | UserUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: UserCreateManyOrganizationInputEnvelope
    set?: UserWhereUniqueInput | UserWhereUniqueInput[]
    disconnect?: UserWhereUniqueInput | UserWhereUniqueInput[]
    delete?: UserWhereUniqueInput | UserWhereUniqueInput[]
    connect?: UserWhereUniqueInput | UserWhereUniqueInput[]
    update?: UserUpdateWithWhereUniqueWithoutOrganizationInput | UserUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: UserUpdateManyWithWhereWithoutOrganizationInput | UserUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: UserScalarWhereInput | UserScalarWhereInput[]
  }

  export type LogisticsUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<LogisticsCreateWithoutOrganizationInput, LogisticsUncheckedCreateWithoutOrganizationInput> | LogisticsCreateWithoutOrganizationInput[] | LogisticsUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: LogisticsCreateOrConnectWithoutOrganizationInput | LogisticsCreateOrConnectWithoutOrganizationInput[]
    upsert?: LogisticsUpsertWithWhereUniqueWithoutOrganizationInput | LogisticsUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: LogisticsCreateManyOrganizationInputEnvelope
    set?: LogisticsWhereUniqueInput | LogisticsWhereUniqueInput[]
    disconnect?: LogisticsWhereUniqueInput | LogisticsWhereUniqueInput[]
    delete?: LogisticsWhereUniqueInput | LogisticsWhereUniqueInput[]
    connect?: LogisticsWhereUniqueInput | LogisticsWhereUniqueInput[]
    update?: LogisticsUpdateWithWhereUniqueWithoutOrganizationInput | LogisticsUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: LogisticsUpdateManyWithWhereWithoutOrganizationInput | LogisticsUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: LogisticsScalarWhereInput | LogisticsScalarWhereInput[]
  }

  export type SupplyOrderUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<SupplyOrderCreateWithoutOrganizationInput, SupplyOrderUncheckedCreateWithoutOrganizationInput> | SupplyOrderCreateWithoutOrganizationInput[] | SupplyOrderUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: SupplyOrderCreateOrConnectWithoutOrganizationInput | SupplyOrderCreateOrConnectWithoutOrganizationInput[]
    upsert?: SupplyOrderUpsertWithWhereUniqueWithoutOrganizationInput | SupplyOrderUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: SupplyOrderCreateManyOrganizationInputEnvelope
    set?: SupplyOrderWhereUniqueInput | SupplyOrderWhereUniqueInput[]
    disconnect?: SupplyOrderWhereUniqueInput | SupplyOrderWhereUniqueInput[]
    delete?: SupplyOrderWhereUniqueInput | SupplyOrderWhereUniqueInput[]
    connect?: SupplyOrderWhereUniqueInput | SupplyOrderWhereUniqueInput[]
    update?: SupplyOrderUpdateWithWhereUniqueWithoutOrganizationInput | SupplyOrderUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: SupplyOrderUpdateManyWithWhereWithoutOrganizationInput | SupplyOrderUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: SupplyOrderScalarWhereInput | SupplyOrderScalarWhereInput[]
  }

  export type SupplyOrderUpdateManyWithoutPartnerNestedInput = {
    create?: XOR<SupplyOrderCreateWithoutPartnerInput, SupplyOrderUncheckedCreateWithoutPartnerInput> | SupplyOrderCreateWithoutPartnerInput[] | SupplyOrderUncheckedCreateWithoutPartnerInput[]
    connectOrCreate?: SupplyOrderCreateOrConnectWithoutPartnerInput | SupplyOrderCreateOrConnectWithoutPartnerInput[]
    upsert?: SupplyOrderUpsertWithWhereUniqueWithoutPartnerInput | SupplyOrderUpsertWithWhereUniqueWithoutPartnerInput[]
    createMany?: SupplyOrderCreateManyPartnerInputEnvelope
    set?: SupplyOrderWhereUniqueInput | SupplyOrderWhereUniqueInput[]
    disconnect?: SupplyOrderWhereUniqueInput | SupplyOrderWhereUniqueInput[]
    delete?: SupplyOrderWhereUniqueInput | SupplyOrderWhereUniqueInput[]
    connect?: SupplyOrderWhereUniqueInput | SupplyOrderWhereUniqueInput[]
    update?: SupplyOrderUpdateWithWhereUniqueWithoutPartnerInput | SupplyOrderUpdateWithWhereUniqueWithoutPartnerInput[]
    updateMany?: SupplyOrderUpdateManyWithWhereWithoutPartnerInput | SupplyOrderUpdateManyWithWhereWithoutPartnerInput[]
    deleteMany?: SupplyOrderScalarWhereInput | SupplyOrderScalarWhereInput[]
  }

  export type SupplyOrderUpdateManyWithoutFulfillmentCenterNestedInput = {
    create?: XOR<SupplyOrderCreateWithoutFulfillmentCenterInput, SupplyOrderUncheckedCreateWithoutFulfillmentCenterInput> | SupplyOrderCreateWithoutFulfillmentCenterInput[] | SupplyOrderUncheckedCreateWithoutFulfillmentCenterInput[]
    connectOrCreate?: SupplyOrderCreateOrConnectWithoutFulfillmentCenterInput | SupplyOrderCreateOrConnectWithoutFulfillmentCenterInput[]
    upsert?: SupplyOrderUpsertWithWhereUniqueWithoutFulfillmentCenterInput | SupplyOrderUpsertWithWhereUniqueWithoutFulfillmentCenterInput[]
    createMany?: SupplyOrderCreateManyFulfillmentCenterInputEnvelope
    set?: SupplyOrderWhereUniqueInput | SupplyOrderWhereUniqueInput[]
    disconnect?: SupplyOrderWhereUniqueInput | SupplyOrderWhereUniqueInput[]
    delete?: SupplyOrderWhereUniqueInput | SupplyOrderWhereUniqueInput[]
    connect?: SupplyOrderWhereUniqueInput | SupplyOrderWhereUniqueInput[]
    update?: SupplyOrderUpdateWithWhereUniqueWithoutFulfillmentCenterInput | SupplyOrderUpdateWithWhereUniqueWithoutFulfillmentCenterInput[]
    updateMany?: SupplyOrderUpdateManyWithWhereWithoutFulfillmentCenterInput | SupplyOrderUpdateManyWithWhereWithoutFulfillmentCenterInput[]
    deleteMany?: SupplyOrderScalarWhereInput | SupplyOrderScalarWhereInput[]
  }

  export type WildberriesSupplyUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<WildberriesSupplyCreateWithoutOrganizationInput, WildberriesSupplyUncheckedCreateWithoutOrganizationInput> | WildberriesSupplyCreateWithoutOrganizationInput[] | WildberriesSupplyUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: WildberriesSupplyCreateOrConnectWithoutOrganizationInput | WildberriesSupplyCreateOrConnectWithoutOrganizationInput[]
    upsert?: WildberriesSupplyUpsertWithWhereUniqueWithoutOrganizationInput | WildberriesSupplyUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: WildberriesSupplyCreateManyOrganizationInputEnvelope
    set?: WildberriesSupplyWhereUniqueInput | WildberriesSupplyWhereUniqueInput[]
    disconnect?: WildberriesSupplyWhereUniqueInput | WildberriesSupplyWhereUniqueInput[]
    delete?: WildberriesSupplyWhereUniqueInput | WildberriesSupplyWhereUniqueInput[]
    connect?: WildberriesSupplyWhereUniqueInput | WildberriesSupplyWhereUniqueInput[]
    update?: WildberriesSupplyUpdateWithWhereUniqueWithoutOrganizationInput | WildberriesSupplyUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: WildberriesSupplyUpdateManyWithWhereWithoutOrganizationInput | WildberriesSupplyUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: WildberriesSupplyScalarWhereInput | WildberriesSupplyScalarWhereInput[]
  }

  export type SupplySupplierUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<SupplySupplierCreateWithoutOrganizationInput, SupplySupplierUncheckedCreateWithoutOrganizationInput> | SupplySupplierCreateWithoutOrganizationInput[] | SupplySupplierUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: SupplySupplierCreateOrConnectWithoutOrganizationInput | SupplySupplierCreateOrConnectWithoutOrganizationInput[]
    upsert?: SupplySupplierUpsertWithWhereUniqueWithoutOrganizationInput | SupplySupplierUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: SupplySupplierCreateManyOrganizationInputEnvelope
    set?: SupplySupplierWhereUniqueInput | SupplySupplierWhereUniqueInput[]
    disconnect?: SupplySupplierWhereUniqueInput | SupplySupplierWhereUniqueInput[]
    delete?: SupplySupplierWhereUniqueInput | SupplySupplierWhereUniqueInput[]
    connect?: SupplySupplierWhereUniqueInput | SupplySupplierWhereUniqueInput[]
    update?: SupplySupplierUpdateWithWhereUniqueWithoutOrganizationInput | SupplySupplierUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: SupplySupplierUpdateManyWithWhereWithoutOrganizationInput | SupplySupplierUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: SupplySupplierScalarWhereInput | SupplySupplierScalarWhereInput[]
  }

  export type ApiKeyUncheckedUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<ApiKeyCreateWithoutOrganizationInput, ApiKeyUncheckedCreateWithoutOrganizationInput> | ApiKeyCreateWithoutOrganizationInput[] | ApiKeyUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: ApiKeyCreateOrConnectWithoutOrganizationInput | ApiKeyCreateOrConnectWithoutOrganizationInput[]
    upsert?: ApiKeyUpsertWithWhereUniqueWithoutOrganizationInput | ApiKeyUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: ApiKeyCreateManyOrganizationInputEnvelope
    set?: ApiKeyWhereUniqueInput | ApiKeyWhereUniqueInput[]
    disconnect?: ApiKeyWhereUniqueInput | ApiKeyWhereUniqueInput[]
    delete?: ApiKeyWhereUniqueInput | ApiKeyWhereUniqueInput[]
    connect?: ApiKeyWhereUniqueInput | ApiKeyWhereUniqueInput[]
    update?: ApiKeyUpdateWithWhereUniqueWithoutOrganizationInput | ApiKeyUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: ApiKeyUpdateManyWithWhereWithoutOrganizationInput | ApiKeyUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: ApiKeyScalarWhereInput | ApiKeyScalarWhereInput[]
  }

  export type CartUncheckedUpdateOneWithoutOrganizationNestedInput = {
    create?: XOR<CartCreateWithoutOrganizationInput, CartUncheckedCreateWithoutOrganizationInput>
    connectOrCreate?: CartCreateOrConnectWithoutOrganizationInput
    upsert?: CartUpsertWithoutOrganizationInput
    disconnect?: CartWhereInput | boolean
    delete?: CartWhereInput | boolean
    connect?: CartWhereUniqueInput
    update?: XOR<XOR<CartUpdateToOneWithWhereWithoutOrganizationInput, CartUpdateWithoutOrganizationInput>, CartUncheckedUpdateWithoutOrganizationInput>
  }

  export type CounterpartyUncheckedUpdateManyWithoutCounterpartyNestedInput = {
    create?: XOR<CounterpartyCreateWithoutCounterpartyInput, CounterpartyUncheckedCreateWithoutCounterpartyInput> | CounterpartyCreateWithoutCounterpartyInput[] | CounterpartyUncheckedCreateWithoutCounterpartyInput[]
    connectOrCreate?: CounterpartyCreateOrConnectWithoutCounterpartyInput | CounterpartyCreateOrConnectWithoutCounterpartyInput[]
    upsert?: CounterpartyUpsertWithWhereUniqueWithoutCounterpartyInput | CounterpartyUpsertWithWhereUniqueWithoutCounterpartyInput[]
    createMany?: CounterpartyCreateManyCounterpartyInputEnvelope
    set?: CounterpartyWhereUniqueInput | CounterpartyWhereUniqueInput[]
    disconnect?: CounterpartyWhereUniqueInput | CounterpartyWhereUniqueInput[]
    delete?: CounterpartyWhereUniqueInput | CounterpartyWhereUniqueInput[]
    connect?: CounterpartyWhereUniqueInput | CounterpartyWhereUniqueInput[]
    update?: CounterpartyUpdateWithWhereUniqueWithoutCounterpartyInput | CounterpartyUpdateWithWhereUniqueWithoutCounterpartyInput[]
    updateMany?: CounterpartyUpdateManyWithWhereWithoutCounterpartyInput | CounterpartyUpdateManyWithWhereWithoutCounterpartyInput[]
    deleteMany?: CounterpartyScalarWhereInput | CounterpartyScalarWhereInput[]
  }

  export type CounterpartyUncheckedUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<CounterpartyCreateWithoutOrganizationInput, CounterpartyUncheckedCreateWithoutOrganizationInput> | CounterpartyCreateWithoutOrganizationInput[] | CounterpartyUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: CounterpartyCreateOrConnectWithoutOrganizationInput | CounterpartyCreateOrConnectWithoutOrganizationInput[]
    upsert?: CounterpartyUpsertWithWhereUniqueWithoutOrganizationInput | CounterpartyUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: CounterpartyCreateManyOrganizationInputEnvelope
    set?: CounterpartyWhereUniqueInput | CounterpartyWhereUniqueInput[]
    disconnect?: CounterpartyWhereUniqueInput | CounterpartyWhereUniqueInput[]
    delete?: CounterpartyWhereUniqueInput | CounterpartyWhereUniqueInput[]
    connect?: CounterpartyWhereUniqueInput | CounterpartyWhereUniqueInput[]
    update?: CounterpartyUpdateWithWhereUniqueWithoutOrganizationInput | CounterpartyUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: CounterpartyUpdateManyWithWhereWithoutOrganizationInput | CounterpartyUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: CounterpartyScalarWhereInput | CounterpartyScalarWhereInput[]
  }

  export type CounterpartyRequestUncheckedUpdateManyWithoutReceiverNestedInput = {
    create?: XOR<CounterpartyRequestCreateWithoutReceiverInput, CounterpartyRequestUncheckedCreateWithoutReceiverInput> | CounterpartyRequestCreateWithoutReceiverInput[] | CounterpartyRequestUncheckedCreateWithoutReceiverInput[]
    connectOrCreate?: CounterpartyRequestCreateOrConnectWithoutReceiverInput | CounterpartyRequestCreateOrConnectWithoutReceiverInput[]
    upsert?: CounterpartyRequestUpsertWithWhereUniqueWithoutReceiverInput | CounterpartyRequestUpsertWithWhereUniqueWithoutReceiverInput[]
    createMany?: CounterpartyRequestCreateManyReceiverInputEnvelope
    set?: CounterpartyRequestWhereUniqueInput | CounterpartyRequestWhereUniqueInput[]
    disconnect?: CounterpartyRequestWhereUniqueInput | CounterpartyRequestWhereUniqueInput[]
    delete?: CounterpartyRequestWhereUniqueInput | CounterpartyRequestWhereUniqueInput[]
    connect?: CounterpartyRequestWhereUniqueInput | CounterpartyRequestWhereUniqueInput[]
    update?: CounterpartyRequestUpdateWithWhereUniqueWithoutReceiverInput | CounterpartyRequestUpdateWithWhereUniqueWithoutReceiverInput[]
    updateMany?: CounterpartyRequestUpdateManyWithWhereWithoutReceiverInput | CounterpartyRequestUpdateManyWithWhereWithoutReceiverInput[]
    deleteMany?: CounterpartyRequestScalarWhereInput | CounterpartyRequestScalarWhereInput[]
  }

  export type CounterpartyRequestUncheckedUpdateManyWithoutSenderNestedInput = {
    create?: XOR<CounterpartyRequestCreateWithoutSenderInput, CounterpartyRequestUncheckedCreateWithoutSenderInput> | CounterpartyRequestCreateWithoutSenderInput[] | CounterpartyRequestUncheckedCreateWithoutSenderInput[]
    connectOrCreate?: CounterpartyRequestCreateOrConnectWithoutSenderInput | CounterpartyRequestCreateOrConnectWithoutSenderInput[]
    upsert?: CounterpartyRequestUpsertWithWhereUniqueWithoutSenderInput | CounterpartyRequestUpsertWithWhereUniqueWithoutSenderInput[]
    createMany?: CounterpartyRequestCreateManySenderInputEnvelope
    set?: CounterpartyRequestWhereUniqueInput | CounterpartyRequestWhereUniqueInput[]
    disconnect?: CounterpartyRequestWhereUniqueInput | CounterpartyRequestWhereUniqueInput[]
    delete?: CounterpartyRequestWhereUniqueInput | CounterpartyRequestWhereUniqueInput[]
    connect?: CounterpartyRequestWhereUniqueInput | CounterpartyRequestWhereUniqueInput[]
    update?: CounterpartyRequestUpdateWithWhereUniqueWithoutSenderInput | CounterpartyRequestUpdateWithWhereUniqueWithoutSenderInput[]
    updateMany?: CounterpartyRequestUpdateManyWithWhereWithoutSenderInput | CounterpartyRequestUpdateManyWithWhereWithoutSenderInput[]
    deleteMany?: CounterpartyRequestScalarWhereInput | CounterpartyRequestScalarWhereInput[]
  }

  export type EmployeeUncheckedUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<EmployeeCreateWithoutOrganizationInput, EmployeeUncheckedCreateWithoutOrganizationInput> | EmployeeCreateWithoutOrganizationInput[] | EmployeeUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: EmployeeCreateOrConnectWithoutOrganizationInput | EmployeeCreateOrConnectWithoutOrganizationInput[]
    upsert?: EmployeeUpsertWithWhereUniqueWithoutOrganizationInput | EmployeeUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: EmployeeCreateManyOrganizationInputEnvelope
    set?: EmployeeWhereUniqueInput | EmployeeWhereUniqueInput[]
    disconnect?: EmployeeWhereUniqueInput | EmployeeWhereUniqueInput[]
    delete?: EmployeeWhereUniqueInput | EmployeeWhereUniqueInput[]
    connect?: EmployeeWhereUniqueInput | EmployeeWhereUniqueInput[]
    update?: EmployeeUpdateWithWhereUniqueWithoutOrganizationInput | EmployeeUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: EmployeeUpdateManyWithWhereWithoutOrganizationInput | EmployeeUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: EmployeeScalarWhereInput | EmployeeScalarWhereInput[]
  }

  export type FavoritesUncheckedUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<FavoritesCreateWithoutOrganizationInput, FavoritesUncheckedCreateWithoutOrganizationInput> | FavoritesCreateWithoutOrganizationInput[] | FavoritesUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: FavoritesCreateOrConnectWithoutOrganizationInput | FavoritesCreateOrConnectWithoutOrganizationInput[]
    upsert?: FavoritesUpsertWithWhereUniqueWithoutOrganizationInput | FavoritesUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: FavoritesCreateManyOrganizationInputEnvelope
    set?: FavoritesWhereUniqueInput | FavoritesWhereUniqueInput[]
    disconnect?: FavoritesWhereUniqueInput | FavoritesWhereUniqueInput[]
    delete?: FavoritesWhereUniqueInput | FavoritesWhereUniqueInput[]
    connect?: FavoritesWhereUniqueInput | FavoritesWhereUniqueInput[]
    update?: FavoritesUpdateWithWhereUniqueWithoutOrganizationInput | FavoritesUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: FavoritesUpdateManyWithWhereWithoutOrganizationInput | FavoritesUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: FavoritesScalarWhereInput | FavoritesScalarWhereInput[]
  }

  export type MessageUncheckedUpdateManyWithoutReceiverOrganizationNestedInput = {
    create?: XOR<MessageCreateWithoutReceiverOrganizationInput, MessageUncheckedCreateWithoutReceiverOrganizationInput> | MessageCreateWithoutReceiverOrganizationInput[] | MessageUncheckedCreateWithoutReceiverOrganizationInput[]
    connectOrCreate?: MessageCreateOrConnectWithoutReceiverOrganizationInput | MessageCreateOrConnectWithoutReceiverOrganizationInput[]
    upsert?: MessageUpsertWithWhereUniqueWithoutReceiverOrganizationInput | MessageUpsertWithWhereUniqueWithoutReceiverOrganizationInput[]
    createMany?: MessageCreateManyReceiverOrganizationInputEnvelope
    set?: MessageWhereUniqueInput | MessageWhereUniqueInput[]
    disconnect?: MessageWhereUniqueInput | MessageWhereUniqueInput[]
    delete?: MessageWhereUniqueInput | MessageWhereUniqueInput[]
    connect?: MessageWhereUniqueInput | MessageWhereUniqueInput[]
    update?: MessageUpdateWithWhereUniqueWithoutReceiverOrganizationInput | MessageUpdateWithWhereUniqueWithoutReceiverOrganizationInput[]
    updateMany?: MessageUpdateManyWithWhereWithoutReceiverOrganizationInput | MessageUpdateManyWithWhereWithoutReceiverOrganizationInput[]
    deleteMany?: MessageScalarWhereInput | MessageScalarWhereInput[]
  }

  export type MessageUncheckedUpdateManyWithoutSenderOrganizationNestedInput = {
    create?: XOR<MessageCreateWithoutSenderOrganizationInput, MessageUncheckedCreateWithoutSenderOrganizationInput> | MessageCreateWithoutSenderOrganizationInput[] | MessageUncheckedCreateWithoutSenderOrganizationInput[]
    connectOrCreate?: MessageCreateOrConnectWithoutSenderOrganizationInput | MessageCreateOrConnectWithoutSenderOrganizationInput[]
    upsert?: MessageUpsertWithWhereUniqueWithoutSenderOrganizationInput | MessageUpsertWithWhereUniqueWithoutSenderOrganizationInput[]
    createMany?: MessageCreateManySenderOrganizationInputEnvelope
    set?: MessageWhereUniqueInput | MessageWhereUniqueInput[]
    disconnect?: MessageWhereUniqueInput | MessageWhereUniqueInput[]
    delete?: MessageWhereUniqueInput | MessageWhereUniqueInput[]
    connect?: MessageWhereUniqueInput | MessageWhereUniqueInput[]
    update?: MessageUpdateWithWhereUniqueWithoutSenderOrganizationInput | MessageUpdateWithWhereUniqueWithoutSenderOrganizationInput[]
    updateMany?: MessageUpdateManyWithWhereWithoutSenderOrganizationInput | MessageUpdateManyWithWhereWithoutSenderOrganizationInput[]
    deleteMany?: MessageScalarWhereInput | MessageScalarWhereInput[]
  }

  export type ProductUncheckedUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<ProductCreateWithoutOrganizationInput, ProductUncheckedCreateWithoutOrganizationInput> | ProductCreateWithoutOrganizationInput[] | ProductUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: ProductCreateOrConnectWithoutOrganizationInput | ProductCreateOrConnectWithoutOrganizationInput[]
    upsert?: ProductUpsertWithWhereUniqueWithoutOrganizationInput | ProductUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: ProductCreateManyOrganizationInputEnvelope
    set?: ProductWhereUniqueInput | ProductWhereUniqueInput[]
    disconnect?: ProductWhereUniqueInput | ProductWhereUniqueInput[]
    delete?: ProductWhereUniqueInput | ProductWhereUniqueInput[]
    connect?: ProductWhereUniqueInput | ProductWhereUniqueInput[]
    update?: ProductUpdateWithWhereUniqueWithoutOrganizationInput | ProductUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: ProductUpdateManyWithWhereWithoutOrganizationInput | ProductUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: ProductScalarWhereInput | ProductScalarWhereInput[]
  }

  export type ServiceUncheckedUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<ServiceCreateWithoutOrganizationInput, ServiceUncheckedCreateWithoutOrganizationInput> | ServiceCreateWithoutOrganizationInput[] | ServiceUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: ServiceCreateOrConnectWithoutOrganizationInput | ServiceCreateOrConnectWithoutOrganizationInput[]
    upsert?: ServiceUpsertWithWhereUniqueWithoutOrganizationInput | ServiceUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: ServiceCreateManyOrganizationInputEnvelope
    set?: ServiceWhereUniqueInput | ServiceWhereUniqueInput[]
    disconnect?: ServiceWhereUniqueInput | ServiceWhereUniqueInput[]
    delete?: ServiceWhereUniqueInput | ServiceWhereUniqueInput[]
    connect?: ServiceWhereUniqueInput | ServiceWhereUniqueInput[]
    update?: ServiceUpdateWithWhereUniqueWithoutOrganizationInput | ServiceUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: ServiceUpdateManyWithWhereWithoutOrganizationInput | ServiceUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: ServiceScalarWhereInput | ServiceScalarWhereInput[]
  }

  export type SupplyUncheckedUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<SupplyCreateWithoutOrganizationInput, SupplyUncheckedCreateWithoutOrganizationInput> | SupplyCreateWithoutOrganizationInput[] | SupplyUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: SupplyCreateOrConnectWithoutOrganizationInput | SupplyCreateOrConnectWithoutOrganizationInput[]
    upsert?: SupplyUpsertWithWhereUniqueWithoutOrganizationInput | SupplyUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: SupplyCreateManyOrganizationInputEnvelope
    set?: SupplyWhereUniqueInput | SupplyWhereUniqueInput[]
    disconnect?: SupplyWhereUniqueInput | SupplyWhereUniqueInput[]
    delete?: SupplyWhereUniqueInput | SupplyWhereUniqueInput[]
    connect?: SupplyWhereUniqueInput | SupplyWhereUniqueInput[]
    update?: SupplyUpdateWithWhereUniqueWithoutOrganizationInput | SupplyUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: SupplyUpdateManyWithWhereWithoutOrganizationInput | SupplyUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: SupplyScalarWhereInput | SupplyScalarWhereInput[]
  }

  export type UserUncheckedUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<UserCreateWithoutOrganizationInput, UserUncheckedCreateWithoutOrganizationInput> | UserCreateWithoutOrganizationInput[] | UserUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: UserCreateOrConnectWithoutOrganizationInput | UserCreateOrConnectWithoutOrganizationInput[]
    upsert?: UserUpsertWithWhereUniqueWithoutOrganizationInput | UserUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: UserCreateManyOrganizationInputEnvelope
    set?: UserWhereUniqueInput | UserWhereUniqueInput[]
    disconnect?: UserWhereUniqueInput | UserWhereUniqueInput[]
    delete?: UserWhereUniqueInput | UserWhereUniqueInput[]
    connect?: UserWhereUniqueInput | UserWhereUniqueInput[]
    update?: UserUpdateWithWhereUniqueWithoutOrganizationInput | UserUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: UserUpdateManyWithWhereWithoutOrganizationInput | UserUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: UserScalarWhereInput | UserScalarWhereInput[]
  }

  export type LogisticsUncheckedUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<LogisticsCreateWithoutOrganizationInput, LogisticsUncheckedCreateWithoutOrganizationInput> | LogisticsCreateWithoutOrganizationInput[] | LogisticsUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: LogisticsCreateOrConnectWithoutOrganizationInput | LogisticsCreateOrConnectWithoutOrganizationInput[]
    upsert?: LogisticsUpsertWithWhereUniqueWithoutOrganizationInput | LogisticsUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: LogisticsCreateManyOrganizationInputEnvelope
    set?: LogisticsWhereUniqueInput | LogisticsWhereUniqueInput[]
    disconnect?: LogisticsWhereUniqueInput | LogisticsWhereUniqueInput[]
    delete?: LogisticsWhereUniqueInput | LogisticsWhereUniqueInput[]
    connect?: LogisticsWhereUniqueInput | LogisticsWhereUniqueInput[]
    update?: LogisticsUpdateWithWhereUniqueWithoutOrganizationInput | LogisticsUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: LogisticsUpdateManyWithWhereWithoutOrganizationInput | LogisticsUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: LogisticsScalarWhereInput | LogisticsScalarWhereInput[]
  }

  export type SupplyOrderUncheckedUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<SupplyOrderCreateWithoutOrganizationInput, SupplyOrderUncheckedCreateWithoutOrganizationInput> | SupplyOrderCreateWithoutOrganizationInput[] | SupplyOrderUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: SupplyOrderCreateOrConnectWithoutOrganizationInput | SupplyOrderCreateOrConnectWithoutOrganizationInput[]
    upsert?: SupplyOrderUpsertWithWhereUniqueWithoutOrganizationInput | SupplyOrderUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: SupplyOrderCreateManyOrganizationInputEnvelope
    set?: SupplyOrderWhereUniqueInput | SupplyOrderWhereUniqueInput[]
    disconnect?: SupplyOrderWhereUniqueInput | SupplyOrderWhereUniqueInput[]
    delete?: SupplyOrderWhereUniqueInput | SupplyOrderWhereUniqueInput[]
    connect?: SupplyOrderWhereUniqueInput | SupplyOrderWhereUniqueInput[]
    update?: SupplyOrderUpdateWithWhereUniqueWithoutOrganizationInput | SupplyOrderUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: SupplyOrderUpdateManyWithWhereWithoutOrganizationInput | SupplyOrderUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: SupplyOrderScalarWhereInput | SupplyOrderScalarWhereInput[]
  }

  export type SupplyOrderUncheckedUpdateManyWithoutPartnerNestedInput = {
    create?: XOR<SupplyOrderCreateWithoutPartnerInput, SupplyOrderUncheckedCreateWithoutPartnerInput> | SupplyOrderCreateWithoutPartnerInput[] | SupplyOrderUncheckedCreateWithoutPartnerInput[]
    connectOrCreate?: SupplyOrderCreateOrConnectWithoutPartnerInput | SupplyOrderCreateOrConnectWithoutPartnerInput[]
    upsert?: SupplyOrderUpsertWithWhereUniqueWithoutPartnerInput | SupplyOrderUpsertWithWhereUniqueWithoutPartnerInput[]
    createMany?: SupplyOrderCreateManyPartnerInputEnvelope
    set?: SupplyOrderWhereUniqueInput | SupplyOrderWhereUniqueInput[]
    disconnect?: SupplyOrderWhereUniqueInput | SupplyOrderWhereUniqueInput[]
    delete?: SupplyOrderWhereUniqueInput | SupplyOrderWhereUniqueInput[]
    connect?: SupplyOrderWhereUniqueInput | SupplyOrderWhereUniqueInput[]
    update?: SupplyOrderUpdateWithWhereUniqueWithoutPartnerInput | SupplyOrderUpdateWithWhereUniqueWithoutPartnerInput[]
    updateMany?: SupplyOrderUpdateManyWithWhereWithoutPartnerInput | SupplyOrderUpdateManyWithWhereWithoutPartnerInput[]
    deleteMany?: SupplyOrderScalarWhereInput | SupplyOrderScalarWhereInput[]
  }

  export type SupplyOrderUncheckedUpdateManyWithoutFulfillmentCenterNestedInput = {
    create?: XOR<SupplyOrderCreateWithoutFulfillmentCenterInput, SupplyOrderUncheckedCreateWithoutFulfillmentCenterInput> | SupplyOrderCreateWithoutFulfillmentCenterInput[] | SupplyOrderUncheckedCreateWithoutFulfillmentCenterInput[]
    connectOrCreate?: SupplyOrderCreateOrConnectWithoutFulfillmentCenterInput | SupplyOrderCreateOrConnectWithoutFulfillmentCenterInput[]
    upsert?: SupplyOrderUpsertWithWhereUniqueWithoutFulfillmentCenterInput | SupplyOrderUpsertWithWhereUniqueWithoutFulfillmentCenterInput[]
    createMany?: SupplyOrderCreateManyFulfillmentCenterInputEnvelope
    set?: SupplyOrderWhereUniqueInput | SupplyOrderWhereUniqueInput[]
    disconnect?: SupplyOrderWhereUniqueInput | SupplyOrderWhereUniqueInput[]
    delete?: SupplyOrderWhereUniqueInput | SupplyOrderWhereUniqueInput[]
    connect?: SupplyOrderWhereUniqueInput | SupplyOrderWhereUniqueInput[]
    update?: SupplyOrderUpdateWithWhereUniqueWithoutFulfillmentCenterInput | SupplyOrderUpdateWithWhereUniqueWithoutFulfillmentCenterInput[]
    updateMany?: SupplyOrderUpdateManyWithWhereWithoutFulfillmentCenterInput | SupplyOrderUpdateManyWithWhereWithoutFulfillmentCenterInput[]
    deleteMany?: SupplyOrderScalarWhereInput | SupplyOrderScalarWhereInput[]
  }

  export type WildberriesSupplyUncheckedUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<WildberriesSupplyCreateWithoutOrganizationInput, WildberriesSupplyUncheckedCreateWithoutOrganizationInput> | WildberriesSupplyCreateWithoutOrganizationInput[] | WildberriesSupplyUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: WildberriesSupplyCreateOrConnectWithoutOrganizationInput | WildberriesSupplyCreateOrConnectWithoutOrganizationInput[]
    upsert?: WildberriesSupplyUpsertWithWhereUniqueWithoutOrganizationInput | WildberriesSupplyUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: WildberriesSupplyCreateManyOrganizationInputEnvelope
    set?: WildberriesSupplyWhereUniqueInput | WildberriesSupplyWhereUniqueInput[]
    disconnect?: WildberriesSupplyWhereUniqueInput | WildberriesSupplyWhereUniqueInput[]
    delete?: WildberriesSupplyWhereUniqueInput | WildberriesSupplyWhereUniqueInput[]
    connect?: WildberriesSupplyWhereUniqueInput | WildberriesSupplyWhereUniqueInput[]
    update?: WildberriesSupplyUpdateWithWhereUniqueWithoutOrganizationInput | WildberriesSupplyUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: WildberriesSupplyUpdateManyWithWhereWithoutOrganizationInput | WildberriesSupplyUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: WildberriesSupplyScalarWhereInput | WildberriesSupplyScalarWhereInput[]
  }

  export type SupplySupplierUncheckedUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<SupplySupplierCreateWithoutOrganizationInput, SupplySupplierUncheckedCreateWithoutOrganizationInput> | SupplySupplierCreateWithoutOrganizationInput[] | SupplySupplierUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: SupplySupplierCreateOrConnectWithoutOrganizationInput | SupplySupplierCreateOrConnectWithoutOrganizationInput[]
    upsert?: SupplySupplierUpsertWithWhereUniqueWithoutOrganizationInput | SupplySupplierUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: SupplySupplierCreateManyOrganizationInputEnvelope
    set?: SupplySupplierWhereUniqueInput | SupplySupplierWhereUniqueInput[]
    disconnect?: SupplySupplierWhereUniqueInput | SupplySupplierWhereUniqueInput[]
    delete?: SupplySupplierWhereUniqueInput | SupplySupplierWhereUniqueInput[]
    connect?: SupplySupplierWhereUniqueInput | SupplySupplierWhereUniqueInput[]
    update?: SupplySupplierUpdateWithWhereUniqueWithoutOrganizationInput | SupplySupplierUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: SupplySupplierUpdateManyWithWhereWithoutOrganizationInput | SupplySupplierUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: SupplySupplierScalarWhereInput | SupplySupplierScalarWhereInput[]
  }

  export type OrganizationCreateNestedOneWithoutApiKeysInput = {
    create?: XOR<OrganizationCreateWithoutApiKeysInput, OrganizationUncheckedCreateWithoutApiKeysInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutApiKeysInput
    connect?: OrganizationWhereUniqueInput
  }

  export type EnumMarketplaceTypeFieldUpdateOperationsInput = {
    set?: $Enums.MarketplaceType
  }

  export type OrganizationUpdateOneRequiredWithoutApiKeysNestedInput = {
    create?: XOR<OrganizationCreateWithoutApiKeysInput, OrganizationUncheckedCreateWithoutApiKeysInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutApiKeysInput
    upsert?: OrganizationUpsertWithoutApiKeysInput
    connect?: OrganizationWhereUniqueInput
    update?: XOR<XOR<OrganizationUpdateToOneWithWhereWithoutApiKeysInput, OrganizationUpdateWithoutApiKeysInput>, OrganizationUncheckedUpdateWithoutApiKeysInput>
  }

  export type OrganizationCreateNestedOneWithoutReceivedRequestsInput = {
    create?: XOR<OrganizationCreateWithoutReceivedRequestsInput, OrganizationUncheckedCreateWithoutReceivedRequestsInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutReceivedRequestsInput
    connect?: OrganizationWhereUniqueInput
  }

  export type OrganizationCreateNestedOneWithoutSentRequestsInput = {
    create?: XOR<OrganizationCreateWithoutSentRequestsInput, OrganizationUncheckedCreateWithoutSentRequestsInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutSentRequestsInput
    connect?: OrganizationWhereUniqueInput
  }

  export type EnumCounterpartyRequestStatusFieldUpdateOperationsInput = {
    set?: $Enums.CounterpartyRequestStatus
  }

  export type OrganizationUpdateOneRequiredWithoutReceivedRequestsNestedInput = {
    create?: XOR<OrganizationCreateWithoutReceivedRequestsInput, OrganizationUncheckedCreateWithoutReceivedRequestsInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutReceivedRequestsInput
    upsert?: OrganizationUpsertWithoutReceivedRequestsInput
    connect?: OrganizationWhereUniqueInput
    update?: XOR<XOR<OrganizationUpdateToOneWithWhereWithoutReceivedRequestsInput, OrganizationUpdateWithoutReceivedRequestsInput>, OrganizationUncheckedUpdateWithoutReceivedRequestsInput>
  }

  export type OrganizationUpdateOneRequiredWithoutSentRequestsNestedInput = {
    create?: XOR<OrganizationCreateWithoutSentRequestsInput, OrganizationUncheckedCreateWithoutSentRequestsInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutSentRequestsInput
    upsert?: OrganizationUpsertWithoutSentRequestsInput
    connect?: OrganizationWhereUniqueInput
    update?: XOR<XOR<OrganizationUpdateToOneWithWhereWithoutSentRequestsInput, OrganizationUpdateWithoutSentRequestsInput>, OrganizationUncheckedUpdateWithoutSentRequestsInput>
  }

  export type OrganizationCreateNestedOneWithoutCounterpartyOfInput = {
    create?: XOR<OrganizationCreateWithoutCounterpartyOfInput, OrganizationUncheckedCreateWithoutCounterpartyOfInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutCounterpartyOfInput
    connect?: OrganizationWhereUniqueInput
  }

  export type OrganizationCreateNestedOneWithoutOrganizationCounterpartiesInput = {
    create?: XOR<OrganizationCreateWithoutOrganizationCounterpartiesInput, OrganizationUncheckedCreateWithoutOrganizationCounterpartiesInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutOrganizationCounterpartiesInput
    connect?: OrganizationWhereUniqueInput
  }

  export type OrganizationUpdateOneRequiredWithoutCounterpartyOfNestedInput = {
    create?: XOR<OrganizationCreateWithoutCounterpartyOfInput, OrganizationUncheckedCreateWithoutCounterpartyOfInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutCounterpartyOfInput
    upsert?: OrganizationUpsertWithoutCounterpartyOfInput
    connect?: OrganizationWhereUniqueInput
    update?: XOR<XOR<OrganizationUpdateToOneWithWhereWithoutCounterpartyOfInput, OrganizationUpdateWithoutCounterpartyOfInput>, OrganizationUncheckedUpdateWithoutCounterpartyOfInput>
  }

  export type OrganizationUpdateOneRequiredWithoutOrganizationCounterpartiesNestedInput = {
    create?: XOR<OrganizationCreateWithoutOrganizationCounterpartiesInput, OrganizationUncheckedCreateWithoutOrganizationCounterpartiesInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutOrganizationCounterpartiesInput
    upsert?: OrganizationUpsertWithoutOrganizationCounterpartiesInput
    connect?: OrganizationWhereUniqueInput
    update?: XOR<XOR<OrganizationUpdateToOneWithWhereWithoutOrganizationCounterpartiesInput, OrganizationUpdateWithoutOrganizationCounterpartiesInput>, OrganizationUncheckedUpdateWithoutOrganizationCounterpartiesInput>
  }

  export type OrganizationCreateNestedOneWithoutReceivedMessagesInput = {
    create?: XOR<OrganizationCreateWithoutReceivedMessagesInput, OrganizationUncheckedCreateWithoutReceivedMessagesInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutReceivedMessagesInput
    connect?: OrganizationWhereUniqueInput
  }

  export type UserCreateNestedOneWithoutSentMessagesInput = {
    create?: XOR<UserCreateWithoutSentMessagesInput, UserUncheckedCreateWithoutSentMessagesInput>
    connectOrCreate?: UserCreateOrConnectWithoutSentMessagesInput
    connect?: UserWhereUniqueInput
  }

  export type OrganizationCreateNestedOneWithoutSentMessagesInput = {
    create?: XOR<OrganizationCreateWithoutSentMessagesInput, OrganizationUncheckedCreateWithoutSentMessagesInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutSentMessagesInput
    connect?: OrganizationWhereUniqueInput
  }

  export type EnumMessageTypeFieldUpdateOperationsInput = {
    set?: $Enums.MessageType
  }

  export type OrganizationUpdateOneRequiredWithoutReceivedMessagesNestedInput = {
    create?: XOR<OrganizationCreateWithoutReceivedMessagesInput, OrganizationUncheckedCreateWithoutReceivedMessagesInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutReceivedMessagesInput
    upsert?: OrganizationUpsertWithoutReceivedMessagesInput
    connect?: OrganizationWhereUniqueInput
    update?: XOR<XOR<OrganizationUpdateToOneWithWhereWithoutReceivedMessagesInput, OrganizationUpdateWithoutReceivedMessagesInput>, OrganizationUncheckedUpdateWithoutReceivedMessagesInput>
  }

  export type UserUpdateOneRequiredWithoutSentMessagesNestedInput = {
    create?: XOR<UserCreateWithoutSentMessagesInput, UserUncheckedCreateWithoutSentMessagesInput>
    connectOrCreate?: UserCreateOrConnectWithoutSentMessagesInput
    upsert?: UserUpsertWithoutSentMessagesInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutSentMessagesInput, UserUpdateWithoutSentMessagesInput>, UserUncheckedUpdateWithoutSentMessagesInput>
  }

  export type OrganizationUpdateOneRequiredWithoutSentMessagesNestedInput = {
    create?: XOR<OrganizationCreateWithoutSentMessagesInput, OrganizationUncheckedCreateWithoutSentMessagesInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutSentMessagesInput
    upsert?: OrganizationUpsertWithoutSentMessagesInput
    connect?: OrganizationWhereUniqueInput
    update?: XOR<XOR<OrganizationUpdateToOneWithWhereWithoutSentMessagesInput, OrganizationUpdateWithoutSentMessagesInput>, OrganizationUncheckedUpdateWithoutSentMessagesInput>
  }

  export type OrganizationCreateNestedOneWithoutServicesInput = {
    create?: XOR<OrganizationCreateWithoutServicesInput, OrganizationUncheckedCreateWithoutServicesInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutServicesInput
    connect?: OrganizationWhereUniqueInput
  }

  export type DecimalFieldUpdateOperationsInput = {
    set?: Decimal | DecimalJsLike | number | string
    increment?: Decimal | DecimalJsLike | number | string
    decrement?: Decimal | DecimalJsLike | number | string
    multiply?: Decimal | DecimalJsLike | number | string
    divide?: Decimal | DecimalJsLike | number | string
  }

  export type OrganizationUpdateOneRequiredWithoutServicesNestedInput = {
    create?: XOR<OrganizationCreateWithoutServicesInput, OrganizationUncheckedCreateWithoutServicesInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutServicesInput
    upsert?: OrganizationUpsertWithoutServicesInput
    connect?: OrganizationWhereUniqueInput
    update?: XOR<XOR<OrganizationUpdateToOneWithWhereWithoutServicesInput, OrganizationUpdateWithoutServicesInput>, OrganizationUncheckedUpdateWithoutServicesInput>
  }

  export type OrganizationCreateNestedOneWithoutSuppliesInput = {
    create?: XOR<OrganizationCreateWithoutSuppliesInput, OrganizationUncheckedCreateWithoutSuppliesInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutSuppliesInput
    connect?: OrganizationWhereUniqueInput
  }

  export type OrganizationUpdateOneRequiredWithoutSuppliesNestedInput = {
    create?: XOR<OrganizationCreateWithoutSuppliesInput, OrganizationUncheckedCreateWithoutSuppliesInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutSuppliesInput
    upsert?: OrganizationUpsertWithoutSuppliesInput
    connect?: OrganizationWhereUniqueInput
    update?: XOR<XOR<OrganizationUpdateToOneWithWhereWithoutSuppliesInput, OrganizationUpdateWithoutSuppliesInput>, OrganizationUncheckedUpdateWithoutSuppliesInput>
  }

  export type ProductCreateNestedManyWithoutCategoryInput = {
    create?: XOR<ProductCreateWithoutCategoryInput, ProductUncheckedCreateWithoutCategoryInput> | ProductCreateWithoutCategoryInput[] | ProductUncheckedCreateWithoutCategoryInput[]
    connectOrCreate?: ProductCreateOrConnectWithoutCategoryInput | ProductCreateOrConnectWithoutCategoryInput[]
    createMany?: ProductCreateManyCategoryInputEnvelope
    connect?: ProductWhereUniqueInput | ProductWhereUniqueInput[]
  }

  export type ProductUncheckedCreateNestedManyWithoutCategoryInput = {
    create?: XOR<ProductCreateWithoutCategoryInput, ProductUncheckedCreateWithoutCategoryInput> | ProductCreateWithoutCategoryInput[] | ProductUncheckedCreateWithoutCategoryInput[]
    connectOrCreate?: ProductCreateOrConnectWithoutCategoryInput | ProductCreateOrConnectWithoutCategoryInput[]
    createMany?: ProductCreateManyCategoryInputEnvelope
    connect?: ProductWhereUniqueInput | ProductWhereUniqueInput[]
  }

  export type ProductUpdateManyWithoutCategoryNestedInput = {
    create?: XOR<ProductCreateWithoutCategoryInput, ProductUncheckedCreateWithoutCategoryInput> | ProductCreateWithoutCategoryInput[] | ProductUncheckedCreateWithoutCategoryInput[]
    connectOrCreate?: ProductCreateOrConnectWithoutCategoryInput | ProductCreateOrConnectWithoutCategoryInput[]
    upsert?: ProductUpsertWithWhereUniqueWithoutCategoryInput | ProductUpsertWithWhereUniqueWithoutCategoryInput[]
    createMany?: ProductCreateManyCategoryInputEnvelope
    set?: ProductWhereUniqueInput | ProductWhereUniqueInput[]
    disconnect?: ProductWhereUniqueInput | ProductWhereUniqueInput[]
    delete?: ProductWhereUniqueInput | ProductWhereUniqueInput[]
    connect?: ProductWhereUniqueInput | ProductWhereUniqueInput[]
    update?: ProductUpdateWithWhereUniqueWithoutCategoryInput | ProductUpdateWithWhereUniqueWithoutCategoryInput[]
    updateMany?: ProductUpdateManyWithWhereWithoutCategoryInput | ProductUpdateManyWithWhereWithoutCategoryInput[]
    deleteMany?: ProductScalarWhereInput | ProductScalarWhereInput[]
  }

  export type ProductUncheckedUpdateManyWithoutCategoryNestedInput = {
    create?: XOR<ProductCreateWithoutCategoryInput, ProductUncheckedCreateWithoutCategoryInput> | ProductCreateWithoutCategoryInput[] | ProductUncheckedCreateWithoutCategoryInput[]
    connectOrCreate?: ProductCreateOrConnectWithoutCategoryInput | ProductCreateOrConnectWithoutCategoryInput[]
    upsert?: ProductUpsertWithWhereUniqueWithoutCategoryInput | ProductUpsertWithWhereUniqueWithoutCategoryInput[]
    createMany?: ProductCreateManyCategoryInputEnvelope
    set?: ProductWhereUniqueInput | ProductWhereUniqueInput[]
    disconnect?: ProductWhereUniqueInput | ProductWhereUniqueInput[]
    delete?: ProductWhereUniqueInput | ProductWhereUniqueInput[]
    connect?: ProductWhereUniqueInput | ProductWhereUniqueInput[]
    update?: ProductUpdateWithWhereUniqueWithoutCategoryInput | ProductUpdateWithWhereUniqueWithoutCategoryInput[]
    updateMany?: ProductUpdateManyWithWhereWithoutCategoryInput | ProductUpdateManyWithWhereWithoutCategoryInput[]
    deleteMany?: ProductScalarWhereInput | ProductScalarWhereInput[]
  }

  export type CartItemCreateNestedManyWithoutProductInput = {
    create?: XOR<CartItemCreateWithoutProductInput, CartItemUncheckedCreateWithoutProductInput> | CartItemCreateWithoutProductInput[] | CartItemUncheckedCreateWithoutProductInput[]
    connectOrCreate?: CartItemCreateOrConnectWithoutProductInput | CartItemCreateOrConnectWithoutProductInput[]
    createMany?: CartItemCreateManyProductInputEnvelope
    connect?: CartItemWhereUniqueInput | CartItemWhereUniqueInput[]
  }

  export type FavoritesCreateNestedManyWithoutProductInput = {
    create?: XOR<FavoritesCreateWithoutProductInput, FavoritesUncheckedCreateWithoutProductInput> | FavoritesCreateWithoutProductInput[] | FavoritesUncheckedCreateWithoutProductInput[]
    connectOrCreate?: FavoritesCreateOrConnectWithoutProductInput | FavoritesCreateOrConnectWithoutProductInput[]
    createMany?: FavoritesCreateManyProductInputEnvelope
    connect?: FavoritesWhereUniqueInput | FavoritesWhereUniqueInput[]
  }

  export type SupplyOrderItemCreateNestedManyWithoutProductInput = {
    create?: XOR<SupplyOrderItemCreateWithoutProductInput, SupplyOrderItemUncheckedCreateWithoutProductInput> | SupplyOrderItemCreateWithoutProductInput[] | SupplyOrderItemUncheckedCreateWithoutProductInput[]
    connectOrCreate?: SupplyOrderItemCreateOrConnectWithoutProductInput | SupplyOrderItemCreateOrConnectWithoutProductInput[]
    createMany?: SupplyOrderItemCreateManyProductInputEnvelope
    connect?: SupplyOrderItemWhereUniqueInput | SupplyOrderItemWhereUniqueInput[]
  }

  export type CategoryCreateNestedOneWithoutProductsInput = {
    create?: XOR<CategoryCreateWithoutProductsInput, CategoryUncheckedCreateWithoutProductsInput>
    connectOrCreate?: CategoryCreateOrConnectWithoutProductsInput
    connect?: CategoryWhereUniqueInput
  }

  export type OrganizationCreateNestedOneWithoutProductsInput = {
    create?: XOR<OrganizationCreateWithoutProductsInput, OrganizationUncheckedCreateWithoutProductsInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutProductsInput
    connect?: OrganizationWhereUniqueInput
  }

  export type CartItemUncheckedCreateNestedManyWithoutProductInput = {
    create?: XOR<CartItemCreateWithoutProductInput, CartItemUncheckedCreateWithoutProductInput> | CartItemCreateWithoutProductInput[] | CartItemUncheckedCreateWithoutProductInput[]
    connectOrCreate?: CartItemCreateOrConnectWithoutProductInput | CartItemCreateOrConnectWithoutProductInput[]
    createMany?: CartItemCreateManyProductInputEnvelope
    connect?: CartItemWhereUniqueInput | CartItemWhereUniqueInput[]
  }

  export type FavoritesUncheckedCreateNestedManyWithoutProductInput = {
    create?: XOR<FavoritesCreateWithoutProductInput, FavoritesUncheckedCreateWithoutProductInput> | FavoritesCreateWithoutProductInput[] | FavoritesUncheckedCreateWithoutProductInput[]
    connectOrCreate?: FavoritesCreateOrConnectWithoutProductInput | FavoritesCreateOrConnectWithoutProductInput[]
    createMany?: FavoritesCreateManyProductInputEnvelope
    connect?: FavoritesWhereUniqueInput | FavoritesWhereUniqueInput[]
  }

  export type SupplyOrderItemUncheckedCreateNestedManyWithoutProductInput = {
    create?: XOR<SupplyOrderItemCreateWithoutProductInput, SupplyOrderItemUncheckedCreateWithoutProductInput> | SupplyOrderItemCreateWithoutProductInput[] | SupplyOrderItemUncheckedCreateWithoutProductInput[]
    connectOrCreate?: SupplyOrderItemCreateOrConnectWithoutProductInput | SupplyOrderItemCreateOrConnectWithoutProductInput[]
    createMany?: SupplyOrderItemCreateManyProductInputEnvelope
    connect?: SupplyOrderItemWhereUniqueInput | SupplyOrderItemWhereUniqueInput[]
  }

  export type NullableDecimalFieldUpdateOperationsInput = {
    set?: Decimal | DecimalJsLike | number | string | null
    increment?: Decimal | DecimalJsLike | number | string
    decrement?: Decimal | DecimalJsLike | number | string
    multiply?: Decimal | DecimalJsLike | number | string
    divide?: Decimal | DecimalJsLike | number | string
  }

  export type CartItemUpdateManyWithoutProductNestedInput = {
    create?: XOR<CartItemCreateWithoutProductInput, CartItemUncheckedCreateWithoutProductInput> | CartItemCreateWithoutProductInput[] | CartItemUncheckedCreateWithoutProductInput[]
    connectOrCreate?: CartItemCreateOrConnectWithoutProductInput | CartItemCreateOrConnectWithoutProductInput[]
    upsert?: CartItemUpsertWithWhereUniqueWithoutProductInput | CartItemUpsertWithWhereUniqueWithoutProductInput[]
    createMany?: CartItemCreateManyProductInputEnvelope
    set?: CartItemWhereUniqueInput | CartItemWhereUniqueInput[]
    disconnect?: CartItemWhereUniqueInput | CartItemWhereUniqueInput[]
    delete?: CartItemWhereUniqueInput | CartItemWhereUniqueInput[]
    connect?: CartItemWhereUniqueInput | CartItemWhereUniqueInput[]
    update?: CartItemUpdateWithWhereUniqueWithoutProductInput | CartItemUpdateWithWhereUniqueWithoutProductInput[]
    updateMany?: CartItemUpdateManyWithWhereWithoutProductInput | CartItemUpdateManyWithWhereWithoutProductInput[]
    deleteMany?: CartItemScalarWhereInput | CartItemScalarWhereInput[]
  }

  export type FavoritesUpdateManyWithoutProductNestedInput = {
    create?: XOR<FavoritesCreateWithoutProductInput, FavoritesUncheckedCreateWithoutProductInput> | FavoritesCreateWithoutProductInput[] | FavoritesUncheckedCreateWithoutProductInput[]
    connectOrCreate?: FavoritesCreateOrConnectWithoutProductInput | FavoritesCreateOrConnectWithoutProductInput[]
    upsert?: FavoritesUpsertWithWhereUniqueWithoutProductInput | FavoritesUpsertWithWhereUniqueWithoutProductInput[]
    createMany?: FavoritesCreateManyProductInputEnvelope
    set?: FavoritesWhereUniqueInput | FavoritesWhereUniqueInput[]
    disconnect?: FavoritesWhereUniqueInput | FavoritesWhereUniqueInput[]
    delete?: FavoritesWhereUniqueInput | FavoritesWhereUniqueInput[]
    connect?: FavoritesWhereUniqueInput | FavoritesWhereUniqueInput[]
    update?: FavoritesUpdateWithWhereUniqueWithoutProductInput | FavoritesUpdateWithWhereUniqueWithoutProductInput[]
    updateMany?: FavoritesUpdateManyWithWhereWithoutProductInput | FavoritesUpdateManyWithWhereWithoutProductInput[]
    deleteMany?: FavoritesScalarWhereInput | FavoritesScalarWhereInput[]
  }

  export type SupplyOrderItemUpdateManyWithoutProductNestedInput = {
    create?: XOR<SupplyOrderItemCreateWithoutProductInput, SupplyOrderItemUncheckedCreateWithoutProductInput> | SupplyOrderItemCreateWithoutProductInput[] | SupplyOrderItemUncheckedCreateWithoutProductInput[]
    connectOrCreate?: SupplyOrderItemCreateOrConnectWithoutProductInput | SupplyOrderItemCreateOrConnectWithoutProductInput[]
    upsert?: SupplyOrderItemUpsertWithWhereUniqueWithoutProductInput | SupplyOrderItemUpsertWithWhereUniqueWithoutProductInput[]
    createMany?: SupplyOrderItemCreateManyProductInputEnvelope
    set?: SupplyOrderItemWhereUniqueInput | SupplyOrderItemWhereUniqueInput[]
    disconnect?: SupplyOrderItemWhereUniqueInput | SupplyOrderItemWhereUniqueInput[]
    delete?: SupplyOrderItemWhereUniqueInput | SupplyOrderItemWhereUniqueInput[]
    connect?: SupplyOrderItemWhereUniqueInput | SupplyOrderItemWhereUniqueInput[]
    update?: SupplyOrderItemUpdateWithWhereUniqueWithoutProductInput | SupplyOrderItemUpdateWithWhereUniqueWithoutProductInput[]
    updateMany?: SupplyOrderItemUpdateManyWithWhereWithoutProductInput | SupplyOrderItemUpdateManyWithWhereWithoutProductInput[]
    deleteMany?: SupplyOrderItemScalarWhereInput | SupplyOrderItemScalarWhereInput[]
  }

  export type CategoryUpdateOneWithoutProductsNestedInput = {
    create?: XOR<CategoryCreateWithoutProductsInput, CategoryUncheckedCreateWithoutProductsInput>
    connectOrCreate?: CategoryCreateOrConnectWithoutProductsInput
    upsert?: CategoryUpsertWithoutProductsInput
    disconnect?: CategoryWhereInput | boolean
    delete?: CategoryWhereInput | boolean
    connect?: CategoryWhereUniqueInput
    update?: XOR<XOR<CategoryUpdateToOneWithWhereWithoutProductsInput, CategoryUpdateWithoutProductsInput>, CategoryUncheckedUpdateWithoutProductsInput>
  }

  export type OrganizationUpdateOneRequiredWithoutProductsNestedInput = {
    create?: XOR<OrganizationCreateWithoutProductsInput, OrganizationUncheckedCreateWithoutProductsInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutProductsInput
    upsert?: OrganizationUpsertWithoutProductsInput
    connect?: OrganizationWhereUniqueInput
    update?: XOR<XOR<OrganizationUpdateToOneWithWhereWithoutProductsInput, OrganizationUpdateWithoutProductsInput>, OrganizationUncheckedUpdateWithoutProductsInput>
  }

  export type CartItemUncheckedUpdateManyWithoutProductNestedInput = {
    create?: XOR<CartItemCreateWithoutProductInput, CartItemUncheckedCreateWithoutProductInput> | CartItemCreateWithoutProductInput[] | CartItemUncheckedCreateWithoutProductInput[]
    connectOrCreate?: CartItemCreateOrConnectWithoutProductInput | CartItemCreateOrConnectWithoutProductInput[]
    upsert?: CartItemUpsertWithWhereUniqueWithoutProductInput | CartItemUpsertWithWhereUniqueWithoutProductInput[]
    createMany?: CartItemCreateManyProductInputEnvelope
    set?: CartItemWhereUniqueInput | CartItemWhereUniqueInput[]
    disconnect?: CartItemWhereUniqueInput | CartItemWhereUniqueInput[]
    delete?: CartItemWhereUniqueInput | CartItemWhereUniqueInput[]
    connect?: CartItemWhereUniqueInput | CartItemWhereUniqueInput[]
    update?: CartItemUpdateWithWhereUniqueWithoutProductInput | CartItemUpdateWithWhereUniqueWithoutProductInput[]
    updateMany?: CartItemUpdateManyWithWhereWithoutProductInput | CartItemUpdateManyWithWhereWithoutProductInput[]
    deleteMany?: CartItemScalarWhereInput | CartItemScalarWhereInput[]
  }

  export type FavoritesUncheckedUpdateManyWithoutProductNestedInput = {
    create?: XOR<FavoritesCreateWithoutProductInput, FavoritesUncheckedCreateWithoutProductInput> | FavoritesCreateWithoutProductInput[] | FavoritesUncheckedCreateWithoutProductInput[]
    connectOrCreate?: FavoritesCreateOrConnectWithoutProductInput | FavoritesCreateOrConnectWithoutProductInput[]
    upsert?: FavoritesUpsertWithWhereUniqueWithoutProductInput | FavoritesUpsertWithWhereUniqueWithoutProductInput[]
    createMany?: FavoritesCreateManyProductInputEnvelope
    set?: FavoritesWhereUniqueInput | FavoritesWhereUniqueInput[]
    disconnect?: FavoritesWhereUniqueInput | FavoritesWhereUniqueInput[]
    delete?: FavoritesWhereUniqueInput | FavoritesWhereUniqueInput[]
    connect?: FavoritesWhereUniqueInput | FavoritesWhereUniqueInput[]
    update?: FavoritesUpdateWithWhereUniqueWithoutProductInput | FavoritesUpdateWithWhereUniqueWithoutProductInput[]
    updateMany?: FavoritesUpdateManyWithWhereWithoutProductInput | FavoritesUpdateManyWithWhereWithoutProductInput[]
    deleteMany?: FavoritesScalarWhereInput | FavoritesScalarWhereInput[]
  }

  export type SupplyOrderItemUncheckedUpdateManyWithoutProductNestedInput = {
    create?: XOR<SupplyOrderItemCreateWithoutProductInput, SupplyOrderItemUncheckedCreateWithoutProductInput> | SupplyOrderItemCreateWithoutProductInput[] | SupplyOrderItemUncheckedCreateWithoutProductInput[]
    connectOrCreate?: SupplyOrderItemCreateOrConnectWithoutProductInput | SupplyOrderItemCreateOrConnectWithoutProductInput[]
    upsert?: SupplyOrderItemUpsertWithWhereUniqueWithoutProductInput | SupplyOrderItemUpsertWithWhereUniqueWithoutProductInput[]
    createMany?: SupplyOrderItemCreateManyProductInputEnvelope
    set?: SupplyOrderItemWhereUniqueInput | SupplyOrderItemWhereUniqueInput[]
    disconnect?: SupplyOrderItemWhereUniqueInput | SupplyOrderItemWhereUniqueInput[]
    delete?: SupplyOrderItemWhereUniqueInput | SupplyOrderItemWhereUniqueInput[]
    connect?: SupplyOrderItemWhereUniqueInput | SupplyOrderItemWhereUniqueInput[]
    update?: SupplyOrderItemUpdateWithWhereUniqueWithoutProductInput | SupplyOrderItemUpdateWithWhereUniqueWithoutProductInput[]
    updateMany?: SupplyOrderItemUpdateManyWithWhereWithoutProductInput | SupplyOrderItemUpdateManyWithWhereWithoutProductInput[]
    deleteMany?: SupplyOrderItemScalarWhereInput | SupplyOrderItemScalarWhereInput[]
  }

  export type CartItemCreateNestedManyWithoutCartInput = {
    create?: XOR<CartItemCreateWithoutCartInput, CartItemUncheckedCreateWithoutCartInput> | CartItemCreateWithoutCartInput[] | CartItemUncheckedCreateWithoutCartInput[]
    connectOrCreate?: CartItemCreateOrConnectWithoutCartInput | CartItemCreateOrConnectWithoutCartInput[]
    createMany?: CartItemCreateManyCartInputEnvelope
    connect?: CartItemWhereUniqueInput | CartItemWhereUniqueInput[]
  }

  export type OrganizationCreateNestedOneWithoutCartsInput = {
    create?: XOR<OrganizationCreateWithoutCartsInput, OrganizationUncheckedCreateWithoutCartsInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutCartsInput
    connect?: OrganizationWhereUniqueInput
  }

  export type CartItemUncheckedCreateNestedManyWithoutCartInput = {
    create?: XOR<CartItemCreateWithoutCartInput, CartItemUncheckedCreateWithoutCartInput> | CartItemCreateWithoutCartInput[] | CartItemUncheckedCreateWithoutCartInput[]
    connectOrCreate?: CartItemCreateOrConnectWithoutCartInput | CartItemCreateOrConnectWithoutCartInput[]
    createMany?: CartItemCreateManyCartInputEnvelope
    connect?: CartItemWhereUniqueInput | CartItemWhereUniqueInput[]
  }

  export type CartItemUpdateManyWithoutCartNestedInput = {
    create?: XOR<CartItemCreateWithoutCartInput, CartItemUncheckedCreateWithoutCartInput> | CartItemCreateWithoutCartInput[] | CartItemUncheckedCreateWithoutCartInput[]
    connectOrCreate?: CartItemCreateOrConnectWithoutCartInput | CartItemCreateOrConnectWithoutCartInput[]
    upsert?: CartItemUpsertWithWhereUniqueWithoutCartInput | CartItemUpsertWithWhereUniqueWithoutCartInput[]
    createMany?: CartItemCreateManyCartInputEnvelope
    set?: CartItemWhereUniqueInput | CartItemWhereUniqueInput[]
    disconnect?: CartItemWhereUniqueInput | CartItemWhereUniqueInput[]
    delete?: CartItemWhereUniqueInput | CartItemWhereUniqueInput[]
    connect?: CartItemWhereUniqueInput | CartItemWhereUniqueInput[]
    update?: CartItemUpdateWithWhereUniqueWithoutCartInput | CartItemUpdateWithWhereUniqueWithoutCartInput[]
    updateMany?: CartItemUpdateManyWithWhereWithoutCartInput | CartItemUpdateManyWithWhereWithoutCartInput[]
    deleteMany?: CartItemScalarWhereInput | CartItemScalarWhereInput[]
  }

  export type OrganizationUpdateOneRequiredWithoutCartsNestedInput = {
    create?: XOR<OrganizationCreateWithoutCartsInput, OrganizationUncheckedCreateWithoutCartsInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutCartsInput
    upsert?: OrganizationUpsertWithoutCartsInput
    connect?: OrganizationWhereUniqueInput
    update?: XOR<XOR<OrganizationUpdateToOneWithWhereWithoutCartsInput, OrganizationUpdateWithoutCartsInput>, OrganizationUncheckedUpdateWithoutCartsInput>
  }

  export type CartItemUncheckedUpdateManyWithoutCartNestedInput = {
    create?: XOR<CartItemCreateWithoutCartInput, CartItemUncheckedCreateWithoutCartInput> | CartItemCreateWithoutCartInput[] | CartItemUncheckedCreateWithoutCartInput[]
    connectOrCreate?: CartItemCreateOrConnectWithoutCartInput | CartItemCreateOrConnectWithoutCartInput[]
    upsert?: CartItemUpsertWithWhereUniqueWithoutCartInput | CartItemUpsertWithWhereUniqueWithoutCartInput[]
    createMany?: CartItemCreateManyCartInputEnvelope
    set?: CartItemWhereUniqueInput | CartItemWhereUniqueInput[]
    disconnect?: CartItemWhereUniqueInput | CartItemWhereUniqueInput[]
    delete?: CartItemWhereUniqueInput | CartItemWhereUniqueInput[]
    connect?: CartItemWhereUniqueInput | CartItemWhereUniqueInput[]
    update?: CartItemUpdateWithWhereUniqueWithoutCartInput | CartItemUpdateWithWhereUniqueWithoutCartInput[]
    updateMany?: CartItemUpdateManyWithWhereWithoutCartInput | CartItemUpdateManyWithWhereWithoutCartInput[]
    deleteMany?: CartItemScalarWhereInput | CartItemScalarWhereInput[]
  }

  export type CartCreateNestedOneWithoutItemsInput = {
    create?: XOR<CartCreateWithoutItemsInput, CartUncheckedCreateWithoutItemsInput>
    connectOrCreate?: CartCreateOrConnectWithoutItemsInput
    connect?: CartWhereUniqueInput
  }

  export type ProductCreateNestedOneWithoutCartItemsInput = {
    create?: XOR<ProductCreateWithoutCartItemsInput, ProductUncheckedCreateWithoutCartItemsInput>
    connectOrCreate?: ProductCreateOrConnectWithoutCartItemsInput
    connect?: ProductWhereUniqueInput
  }

  export type CartUpdateOneRequiredWithoutItemsNestedInput = {
    create?: XOR<CartCreateWithoutItemsInput, CartUncheckedCreateWithoutItemsInput>
    connectOrCreate?: CartCreateOrConnectWithoutItemsInput
    upsert?: CartUpsertWithoutItemsInput
    connect?: CartWhereUniqueInput
    update?: XOR<XOR<CartUpdateToOneWithWhereWithoutItemsInput, CartUpdateWithoutItemsInput>, CartUncheckedUpdateWithoutItemsInput>
  }

  export type ProductUpdateOneRequiredWithoutCartItemsNestedInput = {
    create?: XOR<ProductCreateWithoutCartItemsInput, ProductUncheckedCreateWithoutCartItemsInput>
    connectOrCreate?: ProductCreateOrConnectWithoutCartItemsInput
    upsert?: ProductUpsertWithoutCartItemsInput
    connect?: ProductWhereUniqueInput
    update?: XOR<XOR<ProductUpdateToOneWithWhereWithoutCartItemsInput, ProductUpdateWithoutCartItemsInput>, ProductUncheckedUpdateWithoutCartItemsInput>
  }

  export type OrganizationCreateNestedOneWithoutFavoritesInput = {
    create?: XOR<OrganizationCreateWithoutFavoritesInput, OrganizationUncheckedCreateWithoutFavoritesInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutFavoritesInput
    connect?: OrganizationWhereUniqueInput
  }

  export type ProductCreateNestedOneWithoutFavoritesInput = {
    create?: XOR<ProductCreateWithoutFavoritesInput, ProductUncheckedCreateWithoutFavoritesInput>
    connectOrCreate?: ProductCreateOrConnectWithoutFavoritesInput
    connect?: ProductWhereUniqueInput
  }

  export type OrganizationUpdateOneRequiredWithoutFavoritesNestedInput = {
    create?: XOR<OrganizationCreateWithoutFavoritesInput, OrganizationUncheckedCreateWithoutFavoritesInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutFavoritesInput
    upsert?: OrganizationUpsertWithoutFavoritesInput
    connect?: OrganizationWhereUniqueInput
    update?: XOR<XOR<OrganizationUpdateToOneWithWhereWithoutFavoritesInput, OrganizationUpdateWithoutFavoritesInput>, OrganizationUncheckedUpdateWithoutFavoritesInput>
  }

  export type ProductUpdateOneRequiredWithoutFavoritesNestedInput = {
    create?: XOR<ProductCreateWithoutFavoritesInput, ProductUncheckedCreateWithoutFavoritesInput>
    connectOrCreate?: ProductCreateOrConnectWithoutFavoritesInput
    upsert?: ProductUpsertWithoutFavoritesInput
    connect?: ProductWhereUniqueInput
    update?: XOR<XOR<ProductUpdateToOneWithWhereWithoutFavoritesInput, ProductUpdateWithoutFavoritesInput>, ProductUncheckedUpdateWithoutFavoritesInput>
  }

  export type EmployeeScheduleCreateNestedManyWithoutEmployeeInput = {
    create?: XOR<EmployeeScheduleCreateWithoutEmployeeInput, EmployeeScheduleUncheckedCreateWithoutEmployeeInput> | EmployeeScheduleCreateWithoutEmployeeInput[] | EmployeeScheduleUncheckedCreateWithoutEmployeeInput[]
    connectOrCreate?: EmployeeScheduleCreateOrConnectWithoutEmployeeInput | EmployeeScheduleCreateOrConnectWithoutEmployeeInput[]
    createMany?: EmployeeScheduleCreateManyEmployeeInputEnvelope
    connect?: EmployeeScheduleWhereUniqueInput | EmployeeScheduleWhereUniqueInput[]
  }

  export type OrganizationCreateNestedOneWithoutEmployeesInput = {
    create?: XOR<OrganizationCreateWithoutEmployeesInput, OrganizationUncheckedCreateWithoutEmployeesInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutEmployeesInput
    connect?: OrganizationWhereUniqueInput
  }

  export type EmployeeScheduleUncheckedCreateNestedManyWithoutEmployeeInput = {
    create?: XOR<EmployeeScheduleCreateWithoutEmployeeInput, EmployeeScheduleUncheckedCreateWithoutEmployeeInput> | EmployeeScheduleCreateWithoutEmployeeInput[] | EmployeeScheduleUncheckedCreateWithoutEmployeeInput[]
    connectOrCreate?: EmployeeScheduleCreateOrConnectWithoutEmployeeInput | EmployeeScheduleCreateOrConnectWithoutEmployeeInput[]
    createMany?: EmployeeScheduleCreateManyEmployeeInputEnvelope
    connect?: EmployeeScheduleWhereUniqueInput | EmployeeScheduleWhereUniqueInput[]
  }

  export type NullableFloatFieldUpdateOperationsInput = {
    set?: number | null
    increment?: number
    decrement?: number
    multiply?: number
    divide?: number
  }

  export type EnumEmployeeStatusFieldUpdateOperationsInput = {
    set?: $Enums.EmployeeStatus
  }

  export type EmployeeScheduleUpdateManyWithoutEmployeeNestedInput = {
    create?: XOR<EmployeeScheduleCreateWithoutEmployeeInput, EmployeeScheduleUncheckedCreateWithoutEmployeeInput> | EmployeeScheduleCreateWithoutEmployeeInput[] | EmployeeScheduleUncheckedCreateWithoutEmployeeInput[]
    connectOrCreate?: EmployeeScheduleCreateOrConnectWithoutEmployeeInput | EmployeeScheduleCreateOrConnectWithoutEmployeeInput[]
    upsert?: EmployeeScheduleUpsertWithWhereUniqueWithoutEmployeeInput | EmployeeScheduleUpsertWithWhereUniqueWithoutEmployeeInput[]
    createMany?: EmployeeScheduleCreateManyEmployeeInputEnvelope
    set?: EmployeeScheduleWhereUniqueInput | EmployeeScheduleWhereUniqueInput[]
    disconnect?: EmployeeScheduleWhereUniqueInput | EmployeeScheduleWhereUniqueInput[]
    delete?: EmployeeScheduleWhereUniqueInput | EmployeeScheduleWhereUniqueInput[]
    connect?: EmployeeScheduleWhereUniqueInput | EmployeeScheduleWhereUniqueInput[]
    update?: EmployeeScheduleUpdateWithWhereUniqueWithoutEmployeeInput | EmployeeScheduleUpdateWithWhereUniqueWithoutEmployeeInput[]
    updateMany?: EmployeeScheduleUpdateManyWithWhereWithoutEmployeeInput | EmployeeScheduleUpdateManyWithWhereWithoutEmployeeInput[]
    deleteMany?: EmployeeScheduleScalarWhereInput | EmployeeScheduleScalarWhereInput[]
  }

  export type OrganizationUpdateOneRequiredWithoutEmployeesNestedInput = {
    create?: XOR<OrganizationCreateWithoutEmployeesInput, OrganizationUncheckedCreateWithoutEmployeesInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutEmployeesInput
    upsert?: OrganizationUpsertWithoutEmployeesInput
    connect?: OrganizationWhereUniqueInput
    update?: XOR<XOR<OrganizationUpdateToOneWithWhereWithoutEmployeesInput, OrganizationUpdateWithoutEmployeesInput>, OrganizationUncheckedUpdateWithoutEmployeesInput>
  }

  export type EmployeeScheduleUncheckedUpdateManyWithoutEmployeeNestedInput = {
    create?: XOR<EmployeeScheduleCreateWithoutEmployeeInput, EmployeeScheduleUncheckedCreateWithoutEmployeeInput> | EmployeeScheduleCreateWithoutEmployeeInput[] | EmployeeScheduleUncheckedCreateWithoutEmployeeInput[]
    connectOrCreate?: EmployeeScheduleCreateOrConnectWithoutEmployeeInput | EmployeeScheduleCreateOrConnectWithoutEmployeeInput[]
    upsert?: EmployeeScheduleUpsertWithWhereUniqueWithoutEmployeeInput | EmployeeScheduleUpsertWithWhereUniqueWithoutEmployeeInput[]
    createMany?: EmployeeScheduleCreateManyEmployeeInputEnvelope
    set?: EmployeeScheduleWhereUniqueInput | EmployeeScheduleWhereUniqueInput[]
    disconnect?: EmployeeScheduleWhereUniqueInput | EmployeeScheduleWhereUniqueInput[]
    delete?: EmployeeScheduleWhereUniqueInput | EmployeeScheduleWhereUniqueInput[]
    connect?: EmployeeScheduleWhereUniqueInput | EmployeeScheduleWhereUniqueInput[]
    update?: EmployeeScheduleUpdateWithWhereUniqueWithoutEmployeeInput | EmployeeScheduleUpdateWithWhereUniqueWithoutEmployeeInput[]
    updateMany?: EmployeeScheduleUpdateManyWithWhereWithoutEmployeeInput | EmployeeScheduleUpdateManyWithWhereWithoutEmployeeInput[]
    deleteMany?: EmployeeScheduleScalarWhereInput | EmployeeScheduleScalarWhereInput[]
  }

  export type EmployeeCreateNestedOneWithoutScheduleRecordsInput = {
    create?: XOR<EmployeeCreateWithoutScheduleRecordsInput, EmployeeUncheckedCreateWithoutScheduleRecordsInput>
    connectOrCreate?: EmployeeCreateOrConnectWithoutScheduleRecordsInput
    connect?: EmployeeWhereUniqueInput
  }

  export type EnumScheduleStatusFieldUpdateOperationsInput = {
    set?: $Enums.ScheduleStatus
  }

  export type EmployeeUpdateOneRequiredWithoutScheduleRecordsNestedInput = {
    create?: XOR<EmployeeCreateWithoutScheduleRecordsInput, EmployeeUncheckedCreateWithoutScheduleRecordsInput>
    connectOrCreate?: EmployeeCreateOrConnectWithoutScheduleRecordsInput
    upsert?: EmployeeUpsertWithoutScheduleRecordsInput
    connect?: EmployeeWhereUniqueInput
    update?: XOR<XOR<EmployeeUpdateToOneWithWhereWithoutScheduleRecordsInput, EmployeeUpdateWithoutScheduleRecordsInput>, EmployeeUncheckedUpdateWithoutScheduleRecordsInput>
  }

  export type OrganizationCreateNestedOneWithoutWildberriesSuppliesInput = {
    create?: XOR<OrganizationCreateWithoutWildberriesSuppliesInput, OrganizationUncheckedCreateWithoutWildberriesSuppliesInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutWildberriesSuppliesInput
    connect?: OrganizationWhereUniqueInput
  }

  export type WildberriesSupplyCardCreateNestedManyWithoutSupplyInput = {
    create?: XOR<WildberriesSupplyCardCreateWithoutSupplyInput, WildberriesSupplyCardUncheckedCreateWithoutSupplyInput> | WildberriesSupplyCardCreateWithoutSupplyInput[] | WildberriesSupplyCardUncheckedCreateWithoutSupplyInput[]
    connectOrCreate?: WildberriesSupplyCardCreateOrConnectWithoutSupplyInput | WildberriesSupplyCardCreateOrConnectWithoutSupplyInput[]
    createMany?: WildberriesSupplyCardCreateManySupplyInputEnvelope
    connect?: WildberriesSupplyCardWhereUniqueInput | WildberriesSupplyCardWhereUniqueInput[]
  }

  export type WildberriesSupplyCardUncheckedCreateNestedManyWithoutSupplyInput = {
    create?: XOR<WildberriesSupplyCardCreateWithoutSupplyInput, WildberriesSupplyCardUncheckedCreateWithoutSupplyInput> | WildberriesSupplyCardCreateWithoutSupplyInput[] | WildberriesSupplyCardUncheckedCreateWithoutSupplyInput[]
    connectOrCreate?: WildberriesSupplyCardCreateOrConnectWithoutSupplyInput | WildberriesSupplyCardCreateOrConnectWithoutSupplyInput[]
    createMany?: WildberriesSupplyCardCreateManySupplyInputEnvelope
    connect?: WildberriesSupplyCardWhereUniqueInput | WildberriesSupplyCardWhereUniqueInput[]
  }

  export type EnumWildberriesSupplyStatusFieldUpdateOperationsInput = {
    set?: $Enums.WildberriesSupplyStatus
  }

  export type OrganizationUpdateOneRequiredWithoutWildberriesSuppliesNestedInput = {
    create?: XOR<OrganizationCreateWithoutWildberriesSuppliesInput, OrganizationUncheckedCreateWithoutWildberriesSuppliesInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutWildberriesSuppliesInput
    upsert?: OrganizationUpsertWithoutWildberriesSuppliesInput
    connect?: OrganizationWhereUniqueInput
    update?: XOR<XOR<OrganizationUpdateToOneWithWhereWithoutWildberriesSuppliesInput, OrganizationUpdateWithoutWildberriesSuppliesInput>, OrganizationUncheckedUpdateWithoutWildberriesSuppliesInput>
  }

  export type WildberriesSupplyCardUpdateManyWithoutSupplyNestedInput = {
    create?: XOR<WildberriesSupplyCardCreateWithoutSupplyInput, WildberriesSupplyCardUncheckedCreateWithoutSupplyInput> | WildberriesSupplyCardCreateWithoutSupplyInput[] | WildberriesSupplyCardUncheckedCreateWithoutSupplyInput[]
    connectOrCreate?: WildberriesSupplyCardCreateOrConnectWithoutSupplyInput | WildberriesSupplyCardCreateOrConnectWithoutSupplyInput[]
    upsert?: WildberriesSupplyCardUpsertWithWhereUniqueWithoutSupplyInput | WildberriesSupplyCardUpsertWithWhereUniqueWithoutSupplyInput[]
    createMany?: WildberriesSupplyCardCreateManySupplyInputEnvelope
    set?: WildberriesSupplyCardWhereUniqueInput | WildberriesSupplyCardWhereUniqueInput[]
    disconnect?: WildberriesSupplyCardWhereUniqueInput | WildberriesSupplyCardWhereUniqueInput[]
    delete?: WildberriesSupplyCardWhereUniqueInput | WildberriesSupplyCardWhereUniqueInput[]
    connect?: WildberriesSupplyCardWhereUniqueInput | WildberriesSupplyCardWhereUniqueInput[]
    update?: WildberriesSupplyCardUpdateWithWhereUniqueWithoutSupplyInput | WildberriesSupplyCardUpdateWithWhereUniqueWithoutSupplyInput[]
    updateMany?: WildberriesSupplyCardUpdateManyWithWhereWithoutSupplyInput | WildberriesSupplyCardUpdateManyWithWhereWithoutSupplyInput[]
    deleteMany?: WildberriesSupplyCardScalarWhereInput | WildberriesSupplyCardScalarWhereInput[]
  }

  export type WildberriesSupplyCardUncheckedUpdateManyWithoutSupplyNestedInput = {
    create?: XOR<WildberriesSupplyCardCreateWithoutSupplyInput, WildberriesSupplyCardUncheckedCreateWithoutSupplyInput> | WildberriesSupplyCardCreateWithoutSupplyInput[] | WildberriesSupplyCardUncheckedCreateWithoutSupplyInput[]
    connectOrCreate?: WildberriesSupplyCardCreateOrConnectWithoutSupplyInput | WildberriesSupplyCardCreateOrConnectWithoutSupplyInput[]
    upsert?: WildberriesSupplyCardUpsertWithWhereUniqueWithoutSupplyInput | WildberriesSupplyCardUpsertWithWhereUniqueWithoutSupplyInput[]
    createMany?: WildberriesSupplyCardCreateManySupplyInputEnvelope
    set?: WildberriesSupplyCardWhereUniqueInput | WildberriesSupplyCardWhereUniqueInput[]
    disconnect?: WildberriesSupplyCardWhereUniqueInput | WildberriesSupplyCardWhereUniqueInput[]
    delete?: WildberriesSupplyCardWhereUniqueInput | WildberriesSupplyCardWhereUniqueInput[]
    connect?: WildberriesSupplyCardWhereUniqueInput | WildberriesSupplyCardWhereUniqueInput[]
    update?: WildberriesSupplyCardUpdateWithWhereUniqueWithoutSupplyInput | WildberriesSupplyCardUpdateWithWhereUniqueWithoutSupplyInput[]
    updateMany?: WildberriesSupplyCardUpdateManyWithWhereWithoutSupplyInput | WildberriesSupplyCardUpdateManyWithWhereWithoutSupplyInput[]
    deleteMany?: WildberriesSupplyCardScalarWhereInput | WildberriesSupplyCardScalarWhereInput[]
  }

  export type WildberriesSupplyCreateNestedOneWithoutCardsInput = {
    create?: XOR<WildberriesSupplyCreateWithoutCardsInput, WildberriesSupplyUncheckedCreateWithoutCardsInput>
    connectOrCreate?: WildberriesSupplyCreateOrConnectWithoutCardsInput
    connect?: WildberriesSupplyWhereUniqueInput
  }

  export type WildberriesSupplyUpdateOneRequiredWithoutCardsNestedInput = {
    create?: XOR<WildberriesSupplyCreateWithoutCardsInput, WildberriesSupplyUncheckedCreateWithoutCardsInput>
    connectOrCreate?: WildberriesSupplyCreateOrConnectWithoutCardsInput
    upsert?: WildberriesSupplyUpsertWithoutCardsInput
    connect?: WildberriesSupplyWhereUniqueInput
    update?: XOR<XOR<WildberriesSupplyUpdateToOneWithWhereWithoutCardsInput, WildberriesSupplyUpdateWithoutCardsInput>, WildberriesSupplyUncheckedUpdateWithoutCardsInput>
  }

  export type OrganizationCreateNestedOneWithoutLogisticsInput = {
    create?: XOR<OrganizationCreateWithoutLogisticsInput, OrganizationUncheckedCreateWithoutLogisticsInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutLogisticsInput
    connect?: OrganizationWhereUniqueInput
  }

  export type FloatFieldUpdateOperationsInput = {
    set?: number
    increment?: number
    decrement?: number
    multiply?: number
    divide?: number
  }

  export type OrganizationUpdateOneRequiredWithoutLogisticsNestedInput = {
    create?: XOR<OrganizationCreateWithoutLogisticsInput, OrganizationUncheckedCreateWithoutLogisticsInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutLogisticsInput
    upsert?: OrganizationUpsertWithoutLogisticsInput
    connect?: OrganizationWhereUniqueInput
    update?: XOR<XOR<OrganizationUpdateToOneWithWhereWithoutLogisticsInput, OrganizationUpdateWithoutLogisticsInput>, OrganizationUncheckedUpdateWithoutLogisticsInput>
  }

  export type SupplyOrderItemCreateNestedManyWithoutSupplyOrderInput = {
    create?: XOR<SupplyOrderItemCreateWithoutSupplyOrderInput, SupplyOrderItemUncheckedCreateWithoutSupplyOrderInput> | SupplyOrderItemCreateWithoutSupplyOrderInput[] | SupplyOrderItemUncheckedCreateWithoutSupplyOrderInput[]
    connectOrCreate?: SupplyOrderItemCreateOrConnectWithoutSupplyOrderInput | SupplyOrderItemCreateOrConnectWithoutSupplyOrderInput[]
    createMany?: SupplyOrderItemCreateManySupplyOrderInputEnvelope
    connect?: SupplyOrderItemWhereUniqueInput | SupplyOrderItemWhereUniqueInput[]
  }

  export type OrganizationCreateNestedOneWithoutSupplyOrdersInput = {
    create?: XOR<OrganizationCreateWithoutSupplyOrdersInput, OrganizationUncheckedCreateWithoutSupplyOrdersInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutSupplyOrdersInput
    connect?: OrganizationWhereUniqueInput
  }

  export type OrganizationCreateNestedOneWithoutPartnerSupplyOrdersInput = {
    create?: XOR<OrganizationCreateWithoutPartnerSupplyOrdersInput, OrganizationUncheckedCreateWithoutPartnerSupplyOrdersInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutPartnerSupplyOrdersInput
    connect?: OrganizationWhereUniqueInput
  }

  export type OrganizationCreateNestedOneWithoutFulfillmentSupplyOrdersInput = {
    create?: XOR<OrganizationCreateWithoutFulfillmentSupplyOrdersInput, OrganizationUncheckedCreateWithoutFulfillmentSupplyOrdersInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutFulfillmentSupplyOrdersInput
    connect?: OrganizationWhereUniqueInput
  }

  export type SupplyOrderItemUncheckedCreateNestedManyWithoutSupplyOrderInput = {
    create?: XOR<SupplyOrderItemCreateWithoutSupplyOrderInput, SupplyOrderItemUncheckedCreateWithoutSupplyOrderInput> | SupplyOrderItemCreateWithoutSupplyOrderInput[] | SupplyOrderItemUncheckedCreateWithoutSupplyOrderInput[]
    connectOrCreate?: SupplyOrderItemCreateOrConnectWithoutSupplyOrderInput | SupplyOrderItemCreateOrConnectWithoutSupplyOrderInput[]
    createMany?: SupplyOrderItemCreateManySupplyOrderInputEnvelope
    connect?: SupplyOrderItemWhereUniqueInput | SupplyOrderItemWhereUniqueInput[]
  }

  export type EnumSupplyOrderStatusFieldUpdateOperationsInput = {
    set?: $Enums.SupplyOrderStatus
  }

  export type SupplyOrderItemUpdateManyWithoutSupplyOrderNestedInput = {
    create?: XOR<SupplyOrderItemCreateWithoutSupplyOrderInput, SupplyOrderItemUncheckedCreateWithoutSupplyOrderInput> | SupplyOrderItemCreateWithoutSupplyOrderInput[] | SupplyOrderItemUncheckedCreateWithoutSupplyOrderInput[]
    connectOrCreate?: SupplyOrderItemCreateOrConnectWithoutSupplyOrderInput | SupplyOrderItemCreateOrConnectWithoutSupplyOrderInput[]
    upsert?: SupplyOrderItemUpsertWithWhereUniqueWithoutSupplyOrderInput | SupplyOrderItemUpsertWithWhereUniqueWithoutSupplyOrderInput[]
    createMany?: SupplyOrderItemCreateManySupplyOrderInputEnvelope
    set?: SupplyOrderItemWhereUniqueInput | SupplyOrderItemWhereUniqueInput[]
    disconnect?: SupplyOrderItemWhereUniqueInput | SupplyOrderItemWhereUniqueInput[]
    delete?: SupplyOrderItemWhereUniqueInput | SupplyOrderItemWhereUniqueInput[]
    connect?: SupplyOrderItemWhereUniqueInput | SupplyOrderItemWhereUniqueInput[]
    update?: SupplyOrderItemUpdateWithWhereUniqueWithoutSupplyOrderInput | SupplyOrderItemUpdateWithWhereUniqueWithoutSupplyOrderInput[]
    updateMany?: SupplyOrderItemUpdateManyWithWhereWithoutSupplyOrderInput | SupplyOrderItemUpdateManyWithWhereWithoutSupplyOrderInput[]
    deleteMany?: SupplyOrderItemScalarWhereInput | SupplyOrderItemScalarWhereInput[]
  }

  export type OrganizationUpdateOneRequiredWithoutSupplyOrdersNestedInput = {
    create?: XOR<OrganizationCreateWithoutSupplyOrdersInput, OrganizationUncheckedCreateWithoutSupplyOrdersInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutSupplyOrdersInput
    upsert?: OrganizationUpsertWithoutSupplyOrdersInput
    connect?: OrganizationWhereUniqueInput
    update?: XOR<XOR<OrganizationUpdateToOneWithWhereWithoutSupplyOrdersInput, OrganizationUpdateWithoutSupplyOrdersInput>, OrganizationUncheckedUpdateWithoutSupplyOrdersInput>
  }

  export type OrganizationUpdateOneRequiredWithoutPartnerSupplyOrdersNestedInput = {
    create?: XOR<OrganizationCreateWithoutPartnerSupplyOrdersInput, OrganizationUncheckedCreateWithoutPartnerSupplyOrdersInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutPartnerSupplyOrdersInput
    upsert?: OrganizationUpsertWithoutPartnerSupplyOrdersInput
    connect?: OrganizationWhereUniqueInput
    update?: XOR<XOR<OrganizationUpdateToOneWithWhereWithoutPartnerSupplyOrdersInput, OrganizationUpdateWithoutPartnerSupplyOrdersInput>, OrganizationUncheckedUpdateWithoutPartnerSupplyOrdersInput>
  }

  export type OrganizationUpdateOneWithoutFulfillmentSupplyOrdersNestedInput = {
    create?: XOR<OrganizationCreateWithoutFulfillmentSupplyOrdersInput, OrganizationUncheckedCreateWithoutFulfillmentSupplyOrdersInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutFulfillmentSupplyOrdersInput
    upsert?: OrganizationUpsertWithoutFulfillmentSupplyOrdersInput
    disconnect?: OrganizationWhereInput | boolean
    delete?: OrganizationWhereInput | boolean
    connect?: OrganizationWhereUniqueInput
    update?: XOR<XOR<OrganizationUpdateToOneWithWhereWithoutFulfillmentSupplyOrdersInput, OrganizationUpdateWithoutFulfillmentSupplyOrdersInput>, OrganizationUncheckedUpdateWithoutFulfillmentSupplyOrdersInput>
  }

  export type SupplyOrderItemUncheckedUpdateManyWithoutSupplyOrderNestedInput = {
    create?: XOR<SupplyOrderItemCreateWithoutSupplyOrderInput, SupplyOrderItemUncheckedCreateWithoutSupplyOrderInput> | SupplyOrderItemCreateWithoutSupplyOrderInput[] | SupplyOrderItemUncheckedCreateWithoutSupplyOrderInput[]
    connectOrCreate?: SupplyOrderItemCreateOrConnectWithoutSupplyOrderInput | SupplyOrderItemCreateOrConnectWithoutSupplyOrderInput[]
    upsert?: SupplyOrderItemUpsertWithWhereUniqueWithoutSupplyOrderInput | SupplyOrderItemUpsertWithWhereUniqueWithoutSupplyOrderInput[]
    createMany?: SupplyOrderItemCreateManySupplyOrderInputEnvelope
    set?: SupplyOrderItemWhereUniqueInput | SupplyOrderItemWhereUniqueInput[]
    disconnect?: SupplyOrderItemWhereUniqueInput | SupplyOrderItemWhereUniqueInput[]
    delete?: SupplyOrderItemWhereUniqueInput | SupplyOrderItemWhereUniqueInput[]
    connect?: SupplyOrderItemWhereUniqueInput | SupplyOrderItemWhereUniqueInput[]
    update?: SupplyOrderItemUpdateWithWhereUniqueWithoutSupplyOrderInput | SupplyOrderItemUpdateWithWhereUniqueWithoutSupplyOrderInput[]
    updateMany?: SupplyOrderItemUpdateManyWithWhereWithoutSupplyOrderInput | SupplyOrderItemUpdateManyWithWhereWithoutSupplyOrderInput[]
    deleteMany?: SupplyOrderItemScalarWhereInput | SupplyOrderItemScalarWhereInput[]
  }

  export type SupplyOrderCreateNestedOneWithoutItemsInput = {
    create?: XOR<SupplyOrderCreateWithoutItemsInput, SupplyOrderUncheckedCreateWithoutItemsInput>
    connectOrCreate?: SupplyOrderCreateOrConnectWithoutItemsInput
    connect?: SupplyOrderWhereUniqueInput
  }

  export type ProductCreateNestedOneWithoutSupplyOrderItemsInput = {
    create?: XOR<ProductCreateWithoutSupplyOrderItemsInput, ProductUncheckedCreateWithoutSupplyOrderItemsInput>
    connectOrCreate?: ProductCreateOrConnectWithoutSupplyOrderItemsInput
    connect?: ProductWhereUniqueInput
  }

  export type SupplyOrderUpdateOneRequiredWithoutItemsNestedInput = {
    create?: XOR<SupplyOrderCreateWithoutItemsInput, SupplyOrderUncheckedCreateWithoutItemsInput>
    connectOrCreate?: SupplyOrderCreateOrConnectWithoutItemsInput
    upsert?: SupplyOrderUpsertWithoutItemsInput
    connect?: SupplyOrderWhereUniqueInput
    update?: XOR<XOR<SupplyOrderUpdateToOneWithWhereWithoutItemsInput, SupplyOrderUpdateWithoutItemsInput>, SupplyOrderUncheckedUpdateWithoutItemsInput>
  }

  export type ProductUpdateOneRequiredWithoutSupplyOrderItemsNestedInput = {
    create?: XOR<ProductCreateWithoutSupplyOrderItemsInput, ProductUncheckedCreateWithoutSupplyOrderItemsInput>
    connectOrCreate?: ProductCreateOrConnectWithoutSupplyOrderItemsInput
    upsert?: ProductUpsertWithoutSupplyOrderItemsInput
    connect?: ProductWhereUniqueInput
    update?: XOR<XOR<ProductUpdateToOneWithWhereWithoutSupplyOrderItemsInput, ProductUpdateWithoutSupplyOrderItemsInput>, ProductUncheckedUpdateWithoutSupplyOrderItemsInput>
  }

  export type OrganizationCreateNestedOneWithoutSupplySuppliersInput = {
    create?: XOR<OrganizationCreateWithoutSupplySuppliersInput, OrganizationUncheckedCreateWithoutSupplySuppliersInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutSupplySuppliersInput
    connect?: OrganizationWhereUniqueInput
  }

  export type OrganizationUpdateOneRequiredWithoutSupplySuppliersNestedInput = {
    create?: XOR<OrganizationCreateWithoutSupplySuppliersInput, OrganizationUncheckedCreateWithoutSupplySuppliersInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutSupplySuppliersInput
    upsert?: OrganizationUpsertWithoutSupplySuppliersInput
    connect?: OrganizationWhereUniqueInput
    update?: XOR<XOR<OrganizationUpdateToOneWithWhereWithoutSupplySuppliersInput, OrganizationUpdateWithoutSupplySuppliersInput>, OrganizationUncheckedUpdateWithoutSupplySuppliersInput>
  }

  export type NestedStringFilter<$PrismaModel = never> = {
    equals?: string | StringFieldRefInput<$PrismaModel>
    in?: string[] | ListStringFieldRefInput<$PrismaModel>
    notIn?: string[] | ListStringFieldRefInput<$PrismaModel>
    lt?: string | StringFieldRefInput<$PrismaModel>
    lte?: string | StringFieldRefInput<$PrismaModel>
    gt?: string | StringFieldRefInput<$PrismaModel>
    gte?: string | StringFieldRefInput<$PrismaModel>
    contains?: string | StringFieldRefInput<$PrismaModel>
    startsWith?: string | StringFieldRefInput<$PrismaModel>
    endsWith?: string | StringFieldRefInput<$PrismaModel>
    not?: NestedStringFilter<$PrismaModel> | string
  }

  export type NestedStringNullableFilter<$PrismaModel = never> = {
    equals?: string | StringFieldRefInput<$PrismaModel> | null
    in?: string[] | ListStringFieldRefInput<$PrismaModel> | null
    notIn?: string[] | ListStringFieldRefInput<$PrismaModel> | null
    lt?: string | StringFieldRefInput<$PrismaModel>
    lte?: string | StringFieldRefInput<$PrismaModel>
    gt?: string | StringFieldRefInput<$PrismaModel>
    gte?: string | StringFieldRefInput<$PrismaModel>
    contains?: string | StringFieldRefInput<$PrismaModel>
    startsWith?: string | StringFieldRefInput<$PrismaModel>
    endsWith?: string | StringFieldRefInput<$PrismaModel>
    not?: NestedStringNullableFilter<$PrismaModel> | string | null
  }

  export type NestedDateTimeFilter<$PrismaModel = never> = {
    equals?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel>
    notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel>
    lt?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    lte?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    gt?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    gte?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    not?: NestedDateTimeFilter<$PrismaModel> | Date | string
  }

  export type NestedStringWithAggregatesFilter<$PrismaModel = never> = {
    equals?: string | StringFieldRefInput<$PrismaModel>
    in?: string[] | ListStringFieldRefInput<$PrismaModel>
    notIn?: string[] | ListStringFieldRefInput<$PrismaModel>
    lt?: string | StringFieldRefInput<$PrismaModel>
    lte?: string | StringFieldRefInput<$PrismaModel>
    gt?: string | StringFieldRefInput<$PrismaModel>
    gte?: string | StringFieldRefInput<$PrismaModel>
    contains?: string | StringFieldRefInput<$PrismaModel>
    startsWith?: string | StringFieldRefInput<$PrismaModel>
    endsWith?: string | StringFieldRefInput<$PrismaModel>
    not?: NestedStringWithAggregatesFilter<$PrismaModel> | string
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedStringFilter<$PrismaModel>
    _max?: NestedStringFilter<$PrismaModel>
  }

  export type NestedIntFilter<$PrismaModel = never> = {
    equals?: number | IntFieldRefInput<$PrismaModel>
    in?: number[] | ListIntFieldRefInput<$PrismaModel>
    notIn?: number[] | ListIntFieldRefInput<$PrismaModel>
    lt?: number | IntFieldRefInput<$PrismaModel>
    lte?: number | IntFieldRefInput<$PrismaModel>
    gt?: number | IntFieldRefInput<$PrismaModel>
    gte?: number | IntFieldRefInput<$PrismaModel>
    not?: NestedIntFilter<$PrismaModel> | number
  }

  export type NestedStringNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: string | StringFieldRefInput<$PrismaModel> | null
    in?: string[] | ListStringFieldRefInput<$PrismaModel> | null
    notIn?: string[] | ListStringFieldRefInput<$PrismaModel> | null
    lt?: string | StringFieldRefInput<$PrismaModel>
    lte?: string | StringFieldRefInput<$PrismaModel>
    gt?: string | StringFieldRefInput<$PrismaModel>
    gte?: string | StringFieldRefInput<$PrismaModel>
    contains?: string | StringFieldRefInput<$PrismaModel>
    startsWith?: string | StringFieldRefInput<$PrismaModel>
    endsWith?: string | StringFieldRefInput<$PrismaModel>
    not?: NestedStringNullableWithAggregatesFilter<$PrismaModel> | string | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedStringNullableFilter<$PrismaModel>
    _max?: NestedStringNullableFilter<$PrismaModel>
  }

  export type NestedIntNullableFilter<$PrismaModel = never> = {
    equals?: number | IntFieldRefInput<$PrismaModel> | null
    in?: number[] | ListIntFieldRefInput<$PrismaModel> | null
    notIn?: number[] | ListIntFieldRefInput<$PrismaModel> | null
    lt?: number | IntFieldRefInput<$PrismaModel>
    lte?: number | IntFieldRefInput<$PrismaModel>
    gt?: number | IntFieldRefInput<$PrismaModel>
    gte?: number | IntFieldRefInput<$PrismaModel>
    not?: NestedIntNullableFilter<$PrismaModel> | number | null
  }

  export type NestedDateTimeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel>
    notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel>
    lt?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    lte?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    gt?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    gte?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    not?: NestedDateTimeWithAggregatesFilter<$PrismaModel> | Date | string
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedDateTimeFilter<$PrismaModel>
    _max?: NestedDateTimeFilter<$PrismaModel>
  }

  export type NestedBoolFilter<$PrismaModel = never> = {
    equals?: boolean | BooleanFieldRefInput<$PrismaModel>
    not?: NestedBoolFilter<$PrismaModel> | boolean
  }

  export type NestedDateTimeNullableFilter<$PrismaModel = never> = {
    equals?: Date | string | DateTimeFieldRefInput<$PrismaModel> | null
    in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> | null
    notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> | null
    lt?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    lte?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    gt?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    gte?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    not?: NestedDateTimeNullableFilter<$PrismaModel> | Date | string | null
  }

  export type NestedBoolWithAggregatesFilter<$PrismaModel = never> = {
    equals?: boolean | BooleanFieldRefInput<$PrismaModel>
    not?: NestedBoolWithAggregatesFilter<$PrismaModel> | boolean
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedBoolFilter<$PrismaModel>
    _max?: NestedBoolFilter<$PrismaModel>
  }

  export type NestedDateTimeNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: Date | string | DateTimeFieldRefInput<$PrismaModel> | null
    in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> | null
    notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> | null
    lt?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    lte?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    gt?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    gte?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    not?: NestedDateTimeNullableWithAggregatesFilter<$PrismaModel> | Date | string | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedDateTimeNullableFilter<$PrismaModel>
    _max?: NestedDateTimeNullableFilter<$PrismaModel>
  }

  export type NestedIntWithAggregatesFilter<$PrismaModel = never> = {
    equals?: number | IntFieldRefInput<$PrismaModel>
    in?: number[] | ListIntFieldRefInput<$PrismaModel>
    notIn?: number[] | ListIntFieldRefInput<$PrismaModel>
    lt?: number | IntFieldRefInput<$PrismaModel>
    lte?: number | IntFieldRefInput<$PrismaModel>
    gt?: number | IntFieldRefInput<$PrismaModel>
    gte?: number | IntFieldRefInput<$PrismaModel>
    not?: NestedIntWithAggregatesFilter<$PrismaModel> | number
    _count?: NestedIntFilter<$PrismaModel>
    _avg?: NestedFloatFilter<$PrismaModel>
    _sum?: NestedIntFilter<$PrismaModel>
    _min?: NestedIntFilter<$PrismaModel>
    _max?: NestedIntFilter<$PrismaModel>
  }

  export type NestedFloatFilter<$PrismaModel = never> = {
    equals?: number | FloatFieldRefInput<$PrismaModel>
    in?: number[] | ListFloatFieldRefInput<$PrismaModel>
    notIn?: number[] | ListFloatFieldRefInput<$PrismaModel>
    lt?: number | FloatFieldRefInput<$PrismaModel>
    lte?: number | FloatFieldRefInput<$PrismaModel>
    gt?: number | FloatFieldRefInput<$PrismaModel>
    gte?: number | FloatFieldRefInput<$PrismaModel>
    not?: NestedFloatFilter<$PrismaModel> | number
  }

  export type NestedEnumOrganizationTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.OrganizationType | EnumOrganizationTypeFieldRefInput<$PrismaModel>
    in?: $Enums.OrganizationType[] | ListEnumOrganizationTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.OrganizationType[] | ListEnumOrganizationTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumOrganizationTypeFilter<$PrismaModel> | $Enums.OrganizationType
  }

  export type NestedBigIntNullableFilter<$PrismaModel = never> = {
    equals?: bigint | number | BigIntFieldRefInput<$PrismaModel> | null
    in?: bigint[] | number[] | ListBigIntFieldRefInput<$PrismaModel> | null
    notIn?: bigint[] | number[] | ListBigIntFieldRefInput<$PrismaModel> | null
    lt?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    lte?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    gt?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    gte?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    not?: NestedBigIntNullableFilter<$PrismaModel> | bigint | number | null
  }

  export type NestedEnumOrganizationTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.OrganizationType | EnumOrganizationTypeFieldRefInput<$PrismaModel>
    in?: $Enums.OrganizationType[] | ListEnumOrganizationTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.OrganizationType[] | ListEnumOrganizationTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumOrganizationTypeWithAggregatesFilter<$PrismaModel> | $Enums.OrganizationType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumOrganizationTypeFilter<$PrismaModel>
    _max?: NestedEnumOrganizationTypeFilter<$PrismaModel>
  }
  export type NestedJsonNullableFilter<$PrismaModel = never> =
    | PatchUndefined<
        Either<Required<NestedJsonNullableFilterBase<$PrismaModel>>, Exclude<keyof Required<NestedJsonNullableFilterBase<$PrismaModel>>, 'path'>>,
        Required<NestedJsonNullableFilterBase<$PrismaModel>>
      >
    | OptionalFlat<Omit<Required<NestedJsonNullableFilterBase<$PrismaModel>>, 'path'>>

  export type NestedJsonNullableFilterBase<$PrismaModel = never> = {
    equals?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | JsonNullValueFilter
    path?: string[]
    mode?: QueryMode | EnumQueryModeFieldRefInput<$PrismaModel>
    string_contains?: string | StringFieldRefInput<$PrismaModel>
    string_starts_with?: string | StringFieldRefInput<$PrismaModel>
    string_ends_with?: string | StringFieldRefInput<$PrismaModel>
    array_starts_with?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    array_ends_with?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    array_contains?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    lt?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    lte?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    gt?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    gte?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    not?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | JsonNullValueFilter
  }

  export type NestedIntNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: number | IntFieldRefInput<$PrismaModel> | null
    in?: number[] | ListIntFieldRefInput<$PrismaModel> | null
    notIn?: number[] | ListIntFieldRefInput<$PrismaModel> | null
    lt?: number | IntFieldRefInput<$PrismaModel>
    lte?: number | IntFieldRefInput<$PrismaModel>
    gt?: number | IntFieldRefInput<$PrismaModel>
    gte?: number | IntFieldRefInput<$PrismaModel>
    not?: NestedIntNullableWithAggregatesFilter<$PrismaModel> | number | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _avg?: NestedFloatNullableFilter<$PrismaModel>
    _sum?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedIntNullableFilter<$PrismaModel>
    _max?: NestedIntNullableFilter<$PrismaModel>
  }

  export type NestedFloatNullableFilter<$PrismaModel = never> = {
    equals?: number | FloatFieldRefInput<$PrismaModel> | null
    in?: number[] | ListFloatFieldRefInput<$PrismaModel> | null
    notIn?: number[] | ListFloatFieldRefInput<$PrismaModel> | null
    lt?: number | FloatFieldRefInput<$PrismaModel>
    lte?: number | FloatFieldRefInput<$PrismaModel>
    gt?: number | FloatFieldRefInput<$PrismaModel>
    gte?: number | FloatFieldRefInput<$PrismaModel>
    not?: NestedFloatNullableFilter<$PrismaModel> | number | null
  }

  export type NestedBigIntNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: bigint | number | BigIntFieldRefInput<$PrismaModel> | null
    in?: bigint[] | number[] | ListBigIntFieldRefInput<$PrismaModel> | null
    notIn?: bigint[] | number[] | ListBigIntFieldRefInput<$PrismaModel> | null
    lt?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    lte?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    gt?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    gte?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    not?: NestedBigIntNullableWithAggregatesFilter<$PrismaModel> | bigint | number | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _avg?: NestedFloatNullableFilter<$PrismaModel>
    _sum?: NestedBigIntNullableFilter<$PrismaModel>
    _min?: NestedBigIntNullableFilter<$PrismaModel>
    _max?: NestedBigIntNullableFilter<$PrismaModel>
  }

  export type NestedEnumMarketplaceTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.MarketplaceType | EnumMarketplaceTypeFieldRefInput<$PrismaModel>
    in?: $Enums.MarketplaceType[] | ListEnumMarketplaceTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.MarketplaceType[] | ListEnumMarketplaceTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumMarketplaceTypeFilter<$PrismaModel> | $Enums.MarketplaceType
  }

  export type NestedEnumMarketplaceTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.MarketplaceType | EnumMarketplaceTypeFieldRefInput<$PrismaModel>
    in?: $Enums.MarketplaceType[] | ListEnumMarketplaceTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.MarketplaceType[] | ListEnumMarketplaceTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumMarketplaceTypeWithAggregatesFilter<$PrismaModel> | $Enums.MarketplaceType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumMarketplaceTypeFilter<$PrismaModel>
    _max?: NestedEnumMarketplaceTypeFilter<$PrismaModel>
  }

  export type NestedEnumCounterpartyRequestStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.CounterpartyRequestStatus | EnumCounterpartyRequestStatusFieldRefInput<$PrismaModel>
    in?: $Enums.CounterpartyRequestStatus[] | ListEnumCounterpartyRequestStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.CounterpartyRequestStatus[] | ListEnumCounterpartyRequestStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumCounterpartyRequestStatusFilter<$PrismaModel> | $Enums.CounterpartyRequestStatus
  }

  export type NestedEnumCounterpartyRequestStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.CounterpartyRequestStatus | EnumCounterpartyRequestStatusFieldRefInput<$PrismaModel>
    in?: $Enums.CounterpartyRequestStatus[] | ListEnumCounterpartyRequestStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.CounterpartyRequestStatus[] | ListEnumCounterpartyRequestStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumCounterpartyRequestStatusWithAggregatesFilter<$PrismaModel> | $Enums.CounterpartyRequestStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumCounterpartyRequestStatusFilter<$PrismaModel>
    _max?: NestedEnumCounterpartyRequestStatusFilter<$PrismaModel>
  }

  export type NestedEnumMessageTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.MessageType | EnumMessageTypeFieldRefInput<$PrismaModel>
    in?: $Enums.MessageType[] | ListEnumMessageTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.MessageType[] | ListEnumMessageTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumMessageTypeFilter<$PrismaModel> | $Enums.MessageType
  }

  export type NestedEnumMessageTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.MessageType | EnumMessageTypeFieldRefInput<$PrismaModel>
    in?: $Enums.MessageType[] | ListEnumMessageTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.MessageType[] | ListEnumMessageTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumMessageTypeWithAggregatesFilter<$PrismaModel> | $Enums.MessageType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumMessageTypeFilter<$PrismaModel>
    _max?: NestedEnumMessageTypeFilter<$PrismaModel>
  }

  export type NestedDecimalFilter<$PrismaModel = never> = {
    equals?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    in?: Decimal[] | DecimalJsLike[] | number[] | string[] | ListDecimalFieldRefInput<$PrismaModel>
    notIn?: Decimal[] | DecimalJsLike[] | number[] | string[] | ListDecimalFieldRefInput<$PrismaModel>
    lt?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    lte?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    gt?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    gte?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    not?: NestedDecimalFilter<$PrismaModel> | Decimal | DecimalJsLike | number | string
  }

  export type NestedDecimalWithAggregatesFilter<$PrismaModel = never> = {
    equals?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    in?: Decimal[] | DecimalJsLike[] | number[] | string[] | ListDecimalFieldRefInput<$PrismaModel>
    notIn?: Decimal[] | DecimalJsLike[] | number[] | string[] | ListDecimalFieldRefInput<$PrismaModel>
    lt?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    lte?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    gt?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    gte?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    not?: NestedDecimalWithAggregatesFilter<$PrismaModel> | Decimal | DecimalJsLike | number | string
    _count?: NestedIntFilter<$PrismaModel>
    _avg?: NestedDecimalFilter<$PrismaModel>
    _sum?: NestedDecimalFilter<$PrismaModel>
    _min?: NestedDecimalFilter<$PrismaModel>
    _max?: NestedDecimalFilter<$PrismaModel>
  }

  export type NestedDecimalNullableFilter<$PrismaModel = never> = {
    equals?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel> | null
    in?: Decimal[] | DecimalJsLike[] | number[] | string[] | ListDecimalFieldRefInput<$PrismaModel> | null
    notIn?: Decimal[] | DecimalJsLike[] | number[] | string[] | ListDecimalFieldRefInput<$PrismaModel> | null
    lt?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    lte?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    gt?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    gte?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    not?: NestedDecimalNullableFilter<$PrismaModel> | Decimal | DecimalJsLike | number | string | null
  }

  export type NestedDecimalNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel> | null
    in?: Decimal[] | DecimalJsLike[] | number[] | string[] | ListDecimalFieldRefInput<$PrismaModel> | null
    notIn?: Decimal[] | DecimalJsLike[] | number[] | string[] | ListDecimalFieldRefInput<$PrismaModel> | null
    lt?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    lte?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    gt?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    gte?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    not?: NestedDecimalNullableWithAggregatesFilter<$PrismaModel> | Decimal | DecimalJsLike | number | string | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _avg?: NestedDecimalNullableFilter<$PrismaModel>
    _sum?: NestedDecimalNullableFilter<$PrismaModel>
    _min?: NestedDecimalNullableFilter<$PrismaModel>
    _max?: NestedDecimalNullableFilter<$PrismaModel>
  }
  export type NestedJsonFilter<$PrismaModel = never> =
    | PatchUndefined<
        Either<Required<NestedJsonFilterBase<$PrismaModel>>, Exclude<keyof Required<NestedJsonFilterBase<$PrismaModel>>, 'path'>>,
        Required<NestedJsonFilterBase<$PrismaModel>>
      >
    | OptionalFlat<Omit<Required<NestedJsonFilterBase<$PrismaModel>>, 'path'>>

  export type NestedJsonFilterBase<$PrismaModel = never> = {
    equals?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | JsonNullValueFilter
    path?: string[]
    mode?: QueryMode | EnumQueryModeFieldRefInput<$PrismaModel>
    string_contains?: string | StringFieldRefInput<$PrismaModel>
    string_starts_with?: string | StringFieldRefInput<$PrismaModel>
    string_ends_with?: string | StringFieldRefInput<$PrismaModel>
    array_starts_with?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    array_ends_with?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    array_contains?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    lt?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    lte?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    gt?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    gte?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    not?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | JsonNullValueFilter
  }

  export type NestedEnumEmployeeStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.EmployeeStatus | EnumEmployeeStatusFieldRefInput<$PrismaModel>
    in?: $Enums.EmployeeStatus[] | ListEnumEmployeeStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.EmployeeStatus[] | ListEnumEmployeeStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumEmployeeStatusFilter<$PrismaModel> | $Enums.EmployeeStatus
  }

  export type NestedFloatNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: number | FloatFieldRefInput<$PrismaModel> | null
    in?: number[] | ListFloatFieldRefInput<$PrismaModel> | null
    notIn?: number[] | ListFloatFieldRefInput<$PrismaModel> | null
    lt?: number | FloatFieldRefInput<$PrismaModel>
    lte?: number | FloatFieldRefInput<$PrismaModel>
    gt?: number | FloatFieldRefInput<$PrismaModel>
    gte?: number | FloatFieldRefInput<$PrismaModel>
    not?: NestedFloatNullableWithAggregatesFilter<$PrismaModel> | number | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _avg?: NestedFloatNullableFilter<$PrismaModel>
    _sum?: NestedFloatNullableFilter<$PrismaModel>
    _min?: NestedFloatNullableFilter<$PrismaModel>
    _max?: NestedFloatNullableFilter<$PrismaModel>
  }

  export type NestedEnumEmployeeStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.EmployeeStatus | EnumEmployeeStatusFieldRefInput<$PrismaModel>
    in?: $Enums.EmployeeStatus[] | ListEnumEmployeeStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.EmployeeStatus[] | ListEnumEmployeeStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumEmployeeStatusWithAggregatesFilter<$PrismaModel> | $Enums.EmployeeStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumEmployeeStatusFilter<$PrismaModel>
    _max?: NestedEnumEmployeeStatusFilter<$PrismaModel>
  }

  export type NestedEnumScheduleStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.ScheduleStatus | EnumScheduleStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ScheduleStatus[] | ListEnumScheduleStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ScheduleStatus[] | ListEnumScheduleStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumScheduleStatusFilter<$PrismaModel> | $Enums.ScheduleStatus
  }

  export type NestedEnumScheduleStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ScheduleStatus | EnumScheduleStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ScheduleStatus[] | ListEnumScheduleStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ScheduleStatus[] | ListEnumScheduleStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumScheduleStatusWithAggregatesFilter<$PrismaModel> | $Enums.ScheduleStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumScheduleStatusFilter<$PrismaModel>
    _max?: NestedEnumScheduleStatusFilter<$PrismaModel>
  }

  export type NestedEnumWildberriesSupplyStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.WildberriesSupplyStatus | EnumWildberriesSupplyStatusFieldRefInput<$PrismaModel>
    in?: $Enums.WildberriesSupplyStatus[] | ListEnumWildberriesSupplyStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.WildberriesSupplyStatus[] | ListEnumWildberriesSupplyStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumWildberriesSupplyStatusFilter<$PrismaModel> | $Enums.WildberriesSupplyStatus
  }

  export type NestedEnumWildberriesSupplyStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.WildberriesSupplyStatus | EnumWildberriesSupplyStatusFieldRefInput<$PrismaModel>
    in?: $Enums.WildberriesSupplyStatus[] | ListEnumWildberriesSupplyStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.WildberriesSupplyStatus[] | ListEnumWildberriesSupplyStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumWildberriesSupplyStatusWithAggregatesFilter<$PrismaModel> | $Enums.WildberriesSupplyStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumWildberriesSupplyStatusFilter<$PrismaModel>
    _max?: NestedEnumWildberriesSupplyStatusFilter<$PrismaModel>
  }

  export type NestedFloatWithAggregatesFilter<$PrismaModel = never> = {
    equals?: number | FloatFieldRefInput<$PrismaModel>
    in?: number[] | ListFloatFieldRefInput<$PrismaModel>
    notIn?: number[] | ListFloatFieldRefInput<$PrismaModel>
    lt?: number | FloatFieldRefInput<$PrismaModel>
    lte?: number | FloatFieldRefInput<$PrismaModel>
    gt?: number | FloatFieldRefInput<$PrismaModel>
    gte?: number | FloatFieldRefInput<$PrismaModel>
    not?: NestedFloatWithAggregatesFilter<$PrismaModel> | number
    _count?: NestedIntFilter<$PrismaModel>
    _avg?: NestedFloatFilter<$PrismaModel>
    _sum?: NestedFloatFilter<$PrismaModel>
    _min?: NestedFloatFilter<$PrismaModel>
    _max?: NestedFloatFilter<$PrismaModel>
  }

  export type NestedEnumSupplyOrderStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.SupplyOrderStatus | EnumSupplyOrderStatusFieldRefInput<$PrismaModel>
    in?: $Enums.SupplyOrderStatus[] | ListEnumSupplyOrderStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.SupplyOrderStatus[] | ListEnumSupplyOrderStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumSupplyOrderStatusFilter<$PrismaModel> | $Enums.SupplyOrderStatus
  }

  export type NestedEnumSupplyOrderStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.SupplyOrderStatus | EnumSupplyOrderStatusFieldRefInput<$PrismaModel>
    in?: $Enums.SupplyOrderStatus[] | ListEnumSupplyOrderStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.SupplyOrderStatus[] | ListEnumSupplyOrderStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumSupplyOrderStatusWithAggregatesFilter<$PrismaModel> | $Enums.SupplyOrderStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumSupplyOrderStatusFilter<$PrismaModel>
    _max?: NestedEnumSupplyOrderStatusFilter<$PrismaModel>
  }

  export type MessageCreateWithoutSenderInput = {
    id?: string
    content?: string | null
    type?: $Enums.MessageType
    voiceUrl?: string | null
    voiceDuration?: number | null
    fileUrl?: string | null
    fileName?: string | null
    fileSize?: number | null
    fileType?: string | null
    isRead?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    receiverOrganization: OrganizationCreateNestedOneWithoutReceivedMessagesInput
    senderOrganization: OrganizationCreateNestedOneWithoutSentMessagesInput
  }

  export type MessageUncheckedCreateWithoutSenderInput = {
    id?: string
    content?: string | null
    type?: $Enums.MessageType
    voiceUrl?: string | null
    voiceDuration?: number | null
    fileUrl?: string | null
    fileName?: string | null
    fileSize?: number | null
    fileType?: string | null
    isRead?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    senderOrganizationId: string
    receiverOrganizationId: string
  }

  export type MessageCreateOrConnectWithoutSenderInput = {
    where: MessageWhereUniqueInput
    create: XOR<MessageCreateWithoutSenderInput, MessageUncheckedCreateWithoutSenderInput>
  }

  export type MessageCreateManySenderInputEnvelope = {
    data: MessageCreateManySenderInput | MessageCreateManySenderInput[]
    skipDuplicates?: boolean
  }

  export type SmsCodeCreateWithoutUserInput = {
    id?: string
    code: string
    phone: string
    expiresAt: Date | string
    isUsed?: boolean
    attempts?: number
    maxAttempts?: number
    createdAt?: Date | string
  }

  export type SmsCodeUncheckedCreateWithoutUserInput = {
    id?: string
    code: string
    phone: string
    expiresAt: Date | string
    isUsed?: boolean
    attempts?: number
    maxAttempts?: number
    createdAt?: Date | string
  }

  export type SmsCodeCreateOrConnectWithoutUserInput = {
    where: SmsCodeWhereUniqueInput
    create: XOR<SmsCodeCreateWithoutUserInput, SmsCodeUncheckedCreateWithoutUserInput>
  }

  export type SmsCodeCreateManyUserInputEnvelope = {
    data: SmsCodeCreateManyUserInput | SmsCodeCreateManyUserInput[]
    skipDuplicates?: boolean
  }

  export type OrganizationCreateWithoutUsersInput = {
    id?: string
    inn: string
    kpp?: string | null
    name?: string | null
    fullName?: string | null
    ogrn?: string | null
    ogrnDate?: Date | string | null
    type: $Enums.OrganizationType
    createdAt?: Date | string
    updatedAt?: Date | string
    address?: string | null
    addressFull?: string | null
    status?: string | null
    actualityDate?: Date | string | null
    registrationDate?: Date | string | null
    liquidationDate?: Date | string | null
    managementName?: string | null
    managementPost?: string | null
    opfCode?: string | null
    opfFull?: string | null
    opfShort?: string | null
    okato?: string | null
    oktmo?: string | null
    okpo?: string | null
    okved?: string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: number | null
    revenue?: bigint | number | null
    taxSystem?: string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyCreateNestedManyWithoutOrganizationInput
    carts?: CartCreateNestedOneWithoutOrganizationInput
    counterpartyOf?: CounterpartyCreateNestedManyWithoutCounterpartyInput
    organizationCounterparties?: CounterpartyCreateNestedManyWithoutOrganizationInput
    receivedRequests?: CounterpartyRequestCreateNestedManyWithoutReceiverInput
    sentRequests?: CounterpartyRequestCreateNestedManyWithoutSenderInput
    employees?: EmployeeCreateNestedManyWithoutOrganizationInput
    favorites?: FavoritesCreateNestedManyWithoutOrganizationInput
    receivedMessages?: MessageCreateNestedManyWithoutReceiverOrganizationInput
    sentMessages?: MessageCreateNestedManyWithoutSenderOrganizationInput
    products?: ProductCreateNestedManyWithoutOrganizationInput
    services?: ServiceCreateNestedManyWithoutOrganizationInput
    supplies?: SupplyCreateNestedManyWithoutOrganizationInput
    logistics?: LogisticsCreateNestedManyWithoutOrganizationInput
    supplyOrders?: SupplyOrderCreateNestedManyWithoutOrganizationInput
    partnerSupplyOrders?: SupplyOrderCreateNestedManyWithoutPartnerInput
    fulfillmentSupplyOrders?: SupplyOrderCreateNestedManyWithoutFulfillmentCenterInput
    wildberriesSupplies?: WildberriesSupplyCreateNestedManyWithoutOrganizationInput
    supplySuppliers?: SupplySupplierCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationUncheckedCreateWithoutUsersInput = {
    id?: string
    inn: string
    kpp?: string | null
    name?: string | null
    fullName?: string | null
    ogrn?: string | null
    ogrnDate?: Date | string | null
    type: $Enums.OrganizationType
    createdAt?: Date | string
    updatedAt?: Date | string
    address?: string | null
    addressFull?: string | null
    status?: string | null
    actualityDate?: Date | string | null
    registrationDate?: Date | string | null
    liquidationDate?: Date | string | null
    managementName?: string | null
    managementPost?: string | null
    opfCode?: string | null
    opfFull?: string | null
    opfShort?: string | null
    okato?: string | null
    oktmo?: string | null
    okpo?: string | null
    okved?: string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: number | null
    revenue?: bigint | number | null
    taxSystem?: string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUncheckedCreateNestedManyWithoutOrganizationInput
    carts?: CartUncheckedCreateNestedOneWithoutOrganizationInput
    counterpartyOf?: CounterpartyUncheckedCreateNestedManyWithoutCounterpartyInput
    organizationCounterparties?: CounterpartyUncheckedCreateNestedManyWithoutOrganizationInput
    receivedRequests?: CounterpartyRequestUncheckedCreateNestedManyWithoutReceiverInput
    sentRequests?: CounterpartyRequestUncheckedCreateNestedManyWithoutSenderInput
    employees?: EmployeeUncheckedCreateNestedManyWithoutOrganizationInput
    favorites?: FavoritesUncheckedCreateNestedManyWithoutOrganizationInput
    receivedMessages?: MessageUncheckedCreateNestedManyWithoutReceiverOrganizationInput
    sentMessages?: MessageUncheckedCreateNestedManyWithoutSenderOrganizationInput
    products?: ProductUncheckedCreateNestedManyWithoutOrganizationInput
    services?: ServiceUncheckedCreateNestedManyWithoutOrganizationInput
    supplies?: SupplyUncheckedCreateNestedManyWithoutOrganizationInput
    logistics?: LogisticsUncheckedCreateNestedManyWithoutOrganizationInput
    supplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutOrganizationInput
    partnerSupplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutPartnerInput
    fulfillmentSupplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutFulfillmentCenterInput
    wildberriesSupplies?: WildberriesSupplyUncheckedCreateNestedManyWithoutOrganizationInput
    supplySuppliers?: SupplySupplierUncheckedCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationCreateOrConnectWithoutUsersInput = {
    where: OrganizationWhereUniqueInput
    create: XOR<OrganizationCreateWithoutUsersInput, OrganizationUncheckedCreateWithoutUsersInput>
  }

  export type MessageUpsertWithWhereUniqueWithoutSenderInput = {
    where: MessageWhereUniqueInput
    update: XOR<MessageUpdateWithoutSenderInput, MessageUncheckedUpdateWithoutSenderInput>
    create: XOR<MessageCreateWithoutSenderInput, MessageUncheckedCreateWithoutSenderInput>
  }

  export type MessageUpdateWithWhereUniqueWithoutSenderInput = {
    where: MessageWhereUniqueInput
    data: XOR<MessageUpdateWithoutSenderInput, MessageUncheckedUpdateWithoutSenderInput>
  }

  export type MessageUpdateManyWithWhereWithoutSenderInput = {
    where: MessageScalarWhereInput
    data: XOR<MessageUpdateManyMutationInput, MessageUncheckedUpdateManyWithoutSenderInput>
  }

  export type MessageScalarWhereInput = {
    AND?: MessageScalarWhereInput | MessageScalarWhereInput[]
    OR?: MessageScalarWhereInput[]
    NOT?: MessageScalarWhereInput | MessageScalarWhereInput[]
    id?: StringFilter<"Message"> | string
    content?: StringNullableFilter<"Message"> | string | null
    type?: EnumMessageTypeFilter<"Message"> | $Enums.MessageType
    voiceUrl?: StringNullableFilter<"Message"> | string | null
    voiceDuration?: IntNullableFilter<"Message"> | number | null
    fileUrl?: StringNullableFilter<"Message"> | string | null
    fileName?: StringNullableFilter<"Message"> | string | null
    fileSize?: IntNullableFilter<"Message"> | number | null
    fileType?: StringNullableFilter<"Message"> | string | null
    isRead?: BoolFilter<"Message"> | boolean
    createdAt?: DateTimeFilter<"Message"> | Date | string
    updatedAt?: DateTimeFilter<"Message"> | Date | string
    senderId?: StringFilter<"Message"> | string
    senderOrganizationId?: StringFilter<"Message"> | string
    receiverOrganizationId?: StringFilter<"Message"> | string
  }

  export type SmsCodeUpsertWithWhereUniqueWithoutUserInput = {
    where: SmsCodeWhereUniqueInput
    update: XOR<SmsCodeUpdateWithoutUserInput, SmsCodeUncheckedUpdateWithoutUserInput>
    create: XOR<SmsCodeCreateWithoutUserInput, SmsCodeUncheckedCreateWithoutUserInput>
  }

  export type SmsCodeUpdateWithWhereUniqueWithoutUserInput = {
    where: SmsCodeWhereUniqueInput
    data: XOR<SmsCodeUpdateWithoutUserInput, SmsCodeUncheckedUpdateWithoutUserInput>
  }

  export type SmsCodeUpdateManyWithWhereWithoutUserInput = {
    where: SmsCodeScalarWhereInput
    data: XOR<SmsCodeUpdateManyMutationInput, SmsCodeUncheckedUpdateManyWithoutUserInput>
  }

  export type SmsCodeScalarWhereInput = {
    AND?: SmsCodeScalarWhereInput | SmsCodeScalarWhereInput[]
    OR?: SmsCodeScalarWhereInput[]
    NOT?: SmsCodeScalarWhereInput | SmsCodeScalarWhereInput[]
    id?: StringFilter<"SmsCode"> | string
    code?: StringFilter<"SmsCode"> | string
    phone?: StringFilter<"SmsCode"> | string
    expiresAt?: DateTimeFilter<"SmsCode"> | Date | string
    isUsed?: BoolFilter<"SmsCode"> | boolean
    attempts?: IntFilter<"SmsCode"> | number
    maxAttempts?: IntFilter<"SmsCode"> | number
    createdAt?: DateTimeFilter<"SmsCode"> | Date | string
    userId?: StringNullableFilter<"SmsCode"> | string | null
  }

  export type OrganizationUpsertWithoutUsersInput = {
    update: XOR<OrganizationUpdateWithoutUsersInput, OrganizationUncheckedUpdateWithoutUsersInput>
    create: XOR<OrganizationCreateWithoutUsersInput, OrganizationUncheckedCreateWithoutUsersInput>
    where?: OrganizationWhereInput
  }

  export type OrganizationUpdateToOneWithWhereWithoutUsersInput = {
    where?: OrganizationWhereInput
    data: XOR<OrganizationUpdateWithoutUsersInput, OrganizationUncheckedUpdateWithoutUsersInput>
  }

  export type OrganizationUpdateWithoutUsersInput = {
    id?: StringFieldUpdateOperationsInput | string
    inn?: StringFieldUpdateOperationsInput | string
    kpp?: NullableStringFieldUpdateOperationsInput | string | null
    name?: NullableStringFieldUpdateOperationsInput | string | null
    fullName?: NullableStringFieldUpdateOperationsInput | string | null
    ogrn?: NullableStringFieldUpdateOperationsInput | string | null
    ogrnDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    type?: EnumOrganizationTypeFieldUpdateOperationsInput | $Enums.OrganizationType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    address?: NullableStringFieldUpdateOperationsInput | string | null
    addressFull?: NullableStringFieldUpdateOperationsInput | string | null
    status?: NullableStringFieldUpdateOperationsInput | string | null
    actualityDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    registrationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    liquidationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managementName?: NullableStringFieldUpdateOperationsInput | string | null
    managementPost?: NullableStringFieldUpdateOperationsInput | string | null
    opfCode?: NullableStringFieldUpdateOperationsInput | string | null
    opfFull?: NullableStringFieldUpdateOperationsInput | string | null
    opfShort?: NullableStringFieldUpdateOperationsInput | string | null
    okato?: NullableStringFieldUpdateOperationsInput | string | null
    oktmo?: NullableStringFieldUpdateOperationsInput | string | null
    okpo?: NullableStringFieldUpdateOperationsInput | string | null
    okved?: NullableStringFieldUpdateOperationsInput | string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: NullableIntFieldUpdateOperationsInput | number | null
    revenue?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    taxSystem?: NullableStringFieldUpdateOperationsInput | string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUpdateManyWithoutOrganizationNestedInput
    carts?: CartUpdateOneWithoutOrganizationNestedInput
    counterpartyOf?: CounterpartyUpdateManyWithoutCounterpartyNestedInput
    organizationCounterparties?: CounterpartyUpdateManyWithoutOrganizationNestedInput
    receivedRequests?: CounterpartyRequestUpdateManyWithoutReceiverNestedInput
    sentRequests?: CounterpartyRequestUpdateManyWithoutSenderNestedInput
    employees?: EmployeeUpdateManyWithoutOrganizationNestedInput
    favorites?: FavoritesUpdateManyWithoutOrganizationNestedInput
    receivedMessages?: MessageUpdateManyWithoutReceiverOrganizationNestedInput
    sentMessages?: MessageUpdateManyWithoutSenderOrganizationNestedInput
    products?: ProductUpdateManyWithoutOrganizationNestedInput
    services?: ServiceUpdateManyWithoutOrganizationNestedInput
    supplies?: SupplyUpdateManyWithoutOrganizationNestedInput
    logistics?: LogisticsUpdateManyWithoutOrganizationNestedInput
    supplyOrders?: SupplyOrderUpdateManyWithoutOrganizationNestedInput
    partnerSupplyOrders?: SupplyOrderUpdateManyWithoutPartnerNestedInput
    fulfillmentSupplyOrders?: SupplyOrderUpdateManyWithoutFulfillmentCenterNestedInput
    wildberriesSupplies?: WildberriesSupplyUpdateManyWithoutOrganizationNestedInput
    supplySuppliers?: SupplySupplierUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationUncheckedUpdateWithoutUsersInput = {
    id?: StringFieldUpdateOperationsInput | string
    inn?: StringFieldUpdateOperationsInput | string
    kpp?: NullableStringFieldUpdateOperationsInput | string | null
    name?: NullableStringFieldUpdateOperationsInput | string | null
    fullName?: NullableStringFieldUpdateOperationsInput | string | null
    ogrn?: NullableStringFieldUpdateOperationsInput | string | null
    ogrnDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    type?: EnumOrganizationTypeFieldUpdateOperationsInput | $Enums.OrganizationType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    address?: NullableStringFieldUpdateOperationsInput | string | null
    addressFull?: NullableStringFieldUpdateOperationsInput | string | null
    status?: NullableStringFieldUpdateOperationsInput | string | null
    actualityDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    registrationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    liquidationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managementName?: NullableStringFieldUpdateOperationsInput | string | null
    managementPost?: NullableStringFieldUpdateOperationsInput | string | null
    opfCode?: NullableStringFieldUpdateOperationsInput | string | null
    opfFull?: NullableStringFieldUpdateOperationsInput | string | null
    opfShort?: NullableStringFieldUpdateOperationsInput | string | null
    okato?: NullableStringFieldUpdateOperationsInput | string | null
    oktmo?: NullableStringFieldUpdateOperationsInput | string | null
    okpo?: NullableStringFieldUpdateOperationsInput | string | null
    okved?: NullableStringFieldUpdateOperationsInput | string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: NullableIntFieldUpdateOperationsInput | number | null
    revenue?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    taxSystem?: NullableStringFieldUpdateOperationsInput | string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUncheckedUpdateManyWithoutOrganizationNestedInput
    carts?: CartUncheckedUpdateOneWithoutOrganizationNestedInput
    counterpartyOf?: CounterpartyUncheckedUpdateManyWithoutCounterpartyNestedInput
    organizationCounterparties?: CounterpartyUncheckedUpdateManyWithoutOrganizationNestedInput
    receivedRequests?: CounterpartyRequestUncheckedUpdateManyWithoutReceiverNestedInput
    sentRequests?: CounterpartyRequestUncheckedUpdateManyWithoutSenderNestedInput
    employees?: EmployeeUncheckedUpdateManyWithoutOrganizationNestedInput
    favorites?: FavoritesUncheckedUpdateManyWithoutOrganizationNestedInput
    receivedMessages?: MessageUncheckedUpdateManyWithoutReceiverOrganizationNestedInput
    sentMessages?: MessageUncheckedUpdateManyWithoutSenderOrganizationNestedInput
    products?: ProductUncheckedUpdateManyWithoutOrganizationNestedInput
    services?: ServiceUncheckedUpdateManyWithoutOrganizationNestedInput
    supplies?: SupplyUncheckedUpdateManyWithoutOrganizationNestedInput
    logistics?: LogisticsUncheckedUpdateManyWithoutOrganizationNestedInput
    supplyOrders?: SupplyOrderUncheckedUpdateManyWithoutOrganizationNestedInput
    partnerSupplyOrders?: SupplyOrderUncheckedUpdateManyWithoutPartnerNestedInput
    fulfillmentSupplyOrders?: SupplyOrderUncheckedUpdateManyWithoutFulfillmentCenterNestedInput
    wildberriesSupplies?: WildberriesSupplyUncheckedUpdateManyWithoutOrganizationNestedInput
    supplySuppliers?: SupplySupplierUncheckedUpdateManyWithoutOrganizationNestedInput
  }

  export type UserCreateWithoutSmsCodesInput = {
    id?: string
    phone: string
    avatar?: string | null
    managerName?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    sentMessages?: MessageCreateNestedManyWithoutSenderInput
    organization?: OrganizationCreateNestedOneWithoutUsersInput
  }

  export type UserUncheckedCreateWithoutSmsCodesInput = {
    id?: string
    phone: string
    avatar?: string | null
    managerName?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    organizationId?: string | null
    sentMessages?: MessageUncheckedCreateNestedManyWithoutSenderInput
  }

  export type UserCreateOrConnectWithoutSmsCodesInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutSmsCodesInput, UserUncheckedCreateWithoutSmsCodesInput>
  }

  export type UserUpsertWithoutSmsCodesInput = {
    update: XOR<UserUpdateWithoutSmsCodesInput, UserUncheckedUpdateWithoutSmsCodesInput>
    create: XOR<UserCreateWithoutSmsCodesInput, UserUncheckedCreateWithoutSmsCodesInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutSmsCodesInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutSmsCodesInput, UserUncheckedUpdateWithoutSmsCodesInput>
  }

  export type UserUpdateWithoutSmsCodesInput = {
    id?: StringFieldUpdateOperationsInput | string
    phone?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    managerName?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    sentMessages?: MessageUpdateManyWithoutSenderNestedInput
    organization?: OrganizationUpdateOneWithoutUsersNestedInput
  }

  export type UserUncheckedUpdateWithoutSmsCodesInput = {
    id?: StringFieldUpdateOperationsInput | string
    phone?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    managerName?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    sentMessages?: MessageUncheckedUpdateManyWithoutSenderNestedInput
  }

  export type ApiKeyCreateWithoutOrganizationInput = {
    id?: string
    marketplace: $Enums.MarketplaceType
    apiKey: string
    isActive?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    validationData?: NullableJsonNullValueInput | InputJsonValue
  }

  export type ApiKeyUncheckedCreateWithoutOrganizationInput = {
    id?: string
    marketplace: $Enums.MarketplaceType
    apiKey: string
    isActive?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    validationData?: NullableJsonNullValueInput | InputJsonValue
  }

  export type ApiKeyCreateOrConnectWithoutOrganizationInput = {
    where: ApiKeyWhereUniqueInput
    create: XOR<ApiKeyCreateWithoutOrganizationInput, ApiKeyUncheckedCreateWithoutOrganizationInput>
  }

  export type ApiKeyCreateManyOrganizationInputEnvelope = {
    data: ApiKeyCreateManyOrganizationInput | ApiKeyCreateManyOrganizationInput[]
    skipDuplicates?: boolean
  }

  export type CartCreateWithoutOrganizationInput = {
    id?: string
    createdAt?: Date | string
    updatedAt?: Date | string
    items?: CartItemCreateNestedManyWithoutCartInput
  }

  export type CartUncheckedCreateWithoutOrganizationInput = {
    id?: string
    createdAt?: Date | string
    updatedAt?: Date | string
    items?: CartItemUncheckedCreateNestedManyWithoutCartInput
  }

  export type CartCreateOrConnectWithoutOrganizationInput = {
    where: CartWhereUniqueInput
    create: XOR<CartCreateWithoutOrganizationInput, CartUncheckedCreateWithoutOrganizationInput>
  }

  export type CounterpartyCreateWithoutCounterpartyInput = {
    id?: string
    createdAt?: Date | string
    organization: OrganizationCreateNestedOneWithoutOrganizationCounterpartiesInput
  }

  export type CounterpartyUncheckedCreateWithoutCounterpartyInput = {
    id?: string
    createdAt?: Date | string
    organizationId: string
  }

  export type CounterpartyCreateOrConnectWithoutCounterpartyInput = {
    where: CounterpartyWhereUniqueInput
    create: XOR<CounterpartyCreateWithoutCounterpartyInput, CounterpartyUncheckedCreateWithoutCounterpartyInput>
  }

  export type CounterpartyCreateManyCounterpartyInputEnvelope = {
    data: CounterpartyCreateManyCounterpartyInput | CounterpartyCreateManyCounterpartyInput[]
    skipDuplicates?: boolean
  }

  export type CounterpartyCreateWithoutOrganizationInput = {
    id?: string
    createdAt?: Date | string
    counterparty: OrganizationCreateNestedOneWithoutCounterpartyOfInput
  }

  export type CounterpartyUncheckedCreateWithoutOrganizationInput = {
    id?: string
    createdAt?: Date | string
    counterpartyId: string
  }

  export type CounterpartyCreateOrConnectWithoutOrganizationInput = {
    where: CounterpartyWhereUniqueInput
    create: XOR<CounterpartyCreateWithoutOrganizationInput, CounterpartyUncheckedCreateWithoutOrganizationInput>
  }

  export type CounterpartyCreateManyOrganizationInputEnvelope = {
    data: CounterpartyCreateManyOrganizationInput | CounterpartyCreateManyOrganizationInput[]
    skipDuplicates?: boolean
  }

  export type CounterpartyRequestCreateWithoutReceiverInput = {
    id?: string
    status?: $Enums.CounterpartyRequestStatus
    createdAt?: Date | string
    updatedAt?: Date | string
    message?: string | null
    sender: OrganizationCreateNestedOneWithoutSentRequestsInput
  }

  export type CounterpartyRequestUncheckedCreateWithoutReceiverInput = {
    id?: string
    status?: $Enums.CounterpartyRequestStatus
    createdAt?: Date | string
    updatedAt?: Date | string
    senderId: string
    message?: string | null
  }

  export type CounterpartyRequestCreateOrConnectWithoutReceiverInput = {
    where: CounterpartyRequestWhereUniqueInput
    create: XOR<CounterpartyRequestCreateWithoutReceiverInput, CounterpartyRequestUncheckedCreateWithoutReceiverInput>
  }

  export type CounterpartyRequestCreateManyReceiverInputEnvelope = {
    data: CounterpartyRequestCreateManyReceiverInput | CounterpartyRequestCreateManyReceiverInput[]
    skipDuplicates?: boolean
  }

  export type CounterpartyRequestCreateWithoutSenderInput = {
    id?: string
    status?: $Enums.CounterpartyRequestStatus
    createdAt?: Date | string
    updatedAt?: Date | string
    message?: string | null
    receiver: OrganizationCreateNestedOneWithoutReceivedRequestsInput
  }

  export type CounterpartyRequestUncheckedCreateWithoutSenderInput = {
    id?: string
    status?: $Enums.CounterpartyRequestStatus
    createdAt?: Date | string
    updatedAt?: Date | string
    receiverId: string
    message?: string | null
  }

  export type CounterpartyRequestCreateOrConnectWithoutSenderInput = {
    where: CounterpartyRequestWhereUniqueInput
    create: XOR<CounterpartyRequestCreateWithoutSenderInput, CounterpartyRequestUncheckedCreateWithoutSenderInput>
  }

  export type CounterpartyRequestCreateManySenderInputEnvelope = {
    data: CounterpartyRequestCreateManySenderInput | CounterpartyRequestCreateManySenderInput[]
    skipDuplicates?: boolean
  }

  export type EmployeeCreateWithoutOrganizationInput = {
    id?: string
    firstName: string
    lastName: string
    middleName?: string | null
    birthDate?: Date | string | null
    avatar?: string | null
    passportPhoto?: string | null
    passportSeries?: string | null
    passportNumber?: string | null
    passportIssued?: string | null
    passportDate?: Date | string | null
    address?: string | null
    position: string
    department?: string | null
    hireDate: Date | string
    salary?: number | null
    status?: $Enums.EmployeeStatus
    phone: string
    email?: string | null
    telegram?: string | null
    whatsapp?: string | null
    emergencyContact?: string | null
    emergencyPhone?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    scheduleRecords?: EmployeeScheduleCreateNestedManyWithoutEmployeeInput
  }

  export type EmployeeUncheckedCreateWithoutOrganizationInput = {
    id?: string
    firstName: string
    lastName: string
    middleName?: string | null
    birthDate?: Date | string | null
    avatar?: string | null
    passportPhoto?: string | null
    passportSeries?: string | null
    passportNumber?: string | null
    passportIssued?: string | null
    passportDate?: Date | string | null
    address?: string | null
    position: string
    department?: string | null
    hireDate: Date | string
    salary?: number | null
    status?: $Enums.EmployeeStatus
    phone: string
    email?: string | null
    telegram?: string | null
    whatsapp?: string | null
    emergencyContact?: string | null
    emergencyPhone?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    scheduleRecords?: EmployeeScheduleUncheckedCreateNestedManyWithoutEmployeeInput
  }

  export type EmployeeCreateOrConnectWithoutOrganizationInput = {
    where: EmployeeWhereUniqueInput
    create: XOR<EmployeeCreateWithoutOrganizationInput, EmployeeUncheckedCreateWithoutOrganizationInput>
  }

  export type EmployeeCreateManyOrganizationInputEnvelope = {
    data: EmployeeCreateManyOrganizationInput | EmployeeCreateManyOrganizationInput[]
    skipDuplicates?: boolean
  }

  export type FavoritesCreateWithoutOrganizationInput = {
    id?: string
    createdAt?: Date | string
    updatedAt?: Date | string
    product: ProductCreateNestedOneWithoutFavoritesInput
  }

  export type FavoritesUncheckedCreateWithoutOrganizationInput = {
    id?: string
    productId: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type FavoritesCreateOrConnectWithoutOrganizationInput = {
    where: FavoritesWhereUniqueInput
    create: XOR<FavoritesCreateWithoutOrganizationInput, FavoritesUncheckedCreateWithoutOrganizationInput>
  }

  export type FavoritesCreateManyOrganizationInputEnvelope = {
    data: FavoritesCreateManyOrganizationInput | FavoritesCreateManyOrganizationInput[]
    skipDuplicates?: boolean
  }

  export type MessageCreateWithoutReceiverOrganizationInput = {
    id?: string
    content?: string | null
    type?: $Enums.MessageType
    voiceUrl?: string | null
    voiceDuration?: number | null
    fileUrl?: string | null
    fileName?: string | null
    fileSize?: number | null
    fileType?: string | null
    isRead?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    sender: UserCreateNestedOneWithoutSentMessagesInput
    senderOrganization: OrganizationCreateNestedOneWithoutSentMessagesInput
  }

  export type MessageUncheckedCreateWithoutReceiverOrganizationInput = {
    id?: string
    content?: string | null
    type?: $Enums.MessageType
    voiceUrl?: string | null
    voiceDuration?: number | null
    fileUrl?: string | null
    fileName?: string | null
    fileSize?: number | null
    fileType?: string | null
    isRead?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    senderId: string
    senderOrganizationId: string
  }

  export type MessageCreateOrConnectWithoutReceiverOrganizationInput = {
    where: MessageWhereUniqueInput
    create: XOR<MessageCreateWithoutReceiverOrganizationInput, MessageUncheckedCreateWithoutReceiverOrganizationInput>
  }

  export type MessageCreateManyReceiverOrganizationInputEnvelope = {
    data: MessageCreateManyReceiverOrganizationInput | MessageCreateManyReceiverOrganizationInput[]
    skipDuplicates?: boolean
  }

  export type MessageCreateWithoutSenderOrganizationInput = {
    id?: string
    content?: string | null
    type?: $Enums.MessageType
    voiceUrl?: string | null
    voiceDuration?: number | null
    fileUrl?: string | null
    fileName?: string | null
    fileSize?: number | null
    fileType?: string | null
    isRead?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    receiverOrganization: OrganizationCreateNestedOneWithoutReceivedMessagesInput
    sender: UserCreateNestedOneWithoutSentMessagesInput
  }

  export type MessageUncheckedCreateWithoutSenderOrganizationInput = {
    id?: string
    content?: string | null
    type?: $Enums.MessageType
    voiceUrl?: string | null
    voiceDuration?: number | null
    fileUrl?: string | null
    fileName?: string | null
    fileSize?: number | null
    fileType?: string | null
    isRead?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    senderId: string
    receiverOrganizationId: string
  }

  export type MessageCreateOrConnectWithoutSenderOrganizationInput = {
    where: MessageWhereUniqueInput
    create: XOR<MessageCreateWithoutSenderOrganizationInput, MessageUncheckedCreateWithoutSenderOrganizationInput>
  }

  export type MessageCreateManySenderOrganizationInputEnvelope = {
    data: MessageCreateManySenderOrganizationInput | MessageCreateManySenderOrganizationInput[]
    skipDuplicates?: boolean
  }

  export type ProductCreateWithoutOrganizationInput = {
    id?: string
    name: string
    article: string
    description?: string | null
    price: Decimal | DecimalJsLike | number | string
    quantity?: number
    brand?: string | null
    color?: string | null
    size?: string | null
    weight?: Decimal | DecimalJsLike | number | string | null
    dimensions?: string | null
    material?: string | null
    images?: JsonNullValueInput | InputJsonValue
    mainImage?: string | null
    isActive?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    cartItems?: CartItemCreateNestedManyWithoutProductInput
    favorites?: FavoritesCreateNestedManyWithoutProductInput
    supplyOrderItems?: SupplyOrderItemCreateNestedManyWithoutProductInput
    category?: CategoryCreateNestedOneWithoutProductsInput
  }

  export type ProductUncheckedCreateWithoutOrganizationInput = {
    id?: string
    name: string
    article: string
    description?: string | null
    price: Decimal | DecimalJsLike | number | string
    quantity?: number
    categoryId?: string | null
    brand?: string | null
    color?: string | null
    size?: string | null
    weight?: Decimal | DecimalJsLike | number | string | null
    dimensions?: string | null
    material?: string | null
    images?: JsonNullValueInput | InputJsonValue
    mainImage?: string | null
    isActive?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    cartItems?: CartItemUncheckedCreateNestedManyWithoutProductInput
    favorites?: FavoritesUncheckedCreateNestedManyWithoutProductInput
    supplyOrderItems?: SupplyOrderItemUncheckedCreateNestedManyWithoutProductInput
  }

  export type ProductCreateOrConnectWithoutOrganizationInput = {
    where: ProductWhereUniqueInput
    create: XOR<ProductCreateWithoutOrganizationInput, ProductUncheckedCreateWithoutOrganizationInput>
  }

  export type ProductCreateManyOrganizationInputEnvelope = {
    data: ProductCreateManyOrganizationInput | ProductCreateManyOrganizationInput[]
    skipDuplicates?: boolean
  }

  export type ServiceCreateWithoutOrganizationInput = {
    id?: string
    name: string
    description?: string | null
    price: Decimal | DecimalJsLike | number | string
    imageUrl?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type ServiceUncheckedCreateWithoutOrganizationInput = {
    id?: string
    name: string
    description?: string | null
    price: Decimal | DecimalJsLike | number | string
    imageUrl?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type ServiceCreateOrConnectWithoutOrganizationInput = {
    where: ServiceWhereUniqueInput
    create: XOR<ServiceCreateWithoutOrganizationInput, ServiceUncheckedCreateWithoutOrganizationInput>
  }

  export type ServiceCreateManyOrganizationInputEnvelope = {
    data: ServiceCreateManyOrganizationInput | ServiceCreateManyOrganizationInput[]
    skipDuplicates?: boolean
  }

  export type SupplyCreateWithoutOrganizationInput = {
    id?: string
    name: string
    description?: string | null
    price: Decimal | DecimalJsLike | number | string
    quantity?: number
    unit?: string
    category?: string
    status?: string
    date?: Date | string
    supplier?: string
    minStock?: number
    currentStock?: number
    imageUrl?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type SupplyUncheckedCreateWithoutOrganizationInput = {
    id?: string
    name: string
    description?: string | null
    price: Decimal | DecimalJsLike | number | string
    quantity?: number
    unit?: string
    category?: string
    status?: string
    date?: Date | string
    supplier?: string
    minStock?: number
    currentStock?: number
    imageUrl?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type SupplyCreateOrConnectWithoutOrganizationInput = {
    where: SupplyWhereUniqueInput
    create: XOR<SupplyCreateWithoutOrganizationInput, SupplyUncheckedCreateWithoutOrganizationInput>
  }

  export type SupplyCreateManyOrganizationInputEnvelope = {
    data: SupplyCreateManyOrganizationInput | SupplyCreateManyOrganizationInput[]
    skipDuplicates?: boolean
  }

  export type UserCreateWithoutOrganizationInput = {
    id?: string
    phone: string
    avatar?: string | null
    managerName?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    sentMessages?: MessageCreateNestedManyWithoutSenderInput
    smsCodes?: SmsCodeCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutOrganizationInput = {
    id?: string
    phone: string
    avatar?: string | null
    managerName?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    sentMessages?: MessageUncheckedCreateNestedManyWithoutSenderInput
    smsCodes?: SmsCodeUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutOrganizationInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutOrganizationInput, UserUncheckedCreateWithoutOrganizationInput>
  }

  export type UserCreateManyOrganizationInputEnvelope = {
    data: UserCreateManyOrganizationInput | UserCreateManyOrganizationInput[]
    skipDuplicates?: boolean
  }

  export type LogisticsCreateWithoutOrganizationInput = {
    id?: string
    fromLocation: string
    toLocation: string
    priceUnder1m3: number
    priceOver1m3: number
    description?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type LogisticsUncheckedCreateWithoutOrganizationInput = {
    id?: string
    fromLocation: string
    toLocation: string
    priceUnder1m3: number
    priceOver1m3: number
    description?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type LogisticsCreateOrConnectWithoutOrganizationInput = {
    where: LogisticsWhereUniqueInput
    create: XOR<LogisticsCreateWithoutOrganizationInput, LogisticsUncheckedCreateWithoutOrganizationInput>
  }

  export type LogisticsCreateManyOrganizationInputEnvelope = {
    data: LogisticsCreateManyOrganizationInput | LogisticsCreateManyOrganizationInput[]
    skipDuplicates?: boolean
  }

  export type SupplyOrderCreateWithoutOrganizationInput = {
    id?: string
    deliveryDate: Date | string
    status?: $Enums.SupplyOrderStatus
    totalAmount: Decimal | DecimalJsLike | number | string
    totalItems: number
    createdAt?: Date | string
    updatedAt?: Date | string
    items?: SupplyOrderItemCreateNestedManyWithoutSupplyOrderInput
    partner: OrganizationCreateNestedOneWithoutPartnerSupplyOrdersInput
    fulfillmentCenter?: OrganizationCreateNestedOneWithoutFulfillmentSupplyOrdersInput
  }

  export type SupplyOrderUncheckedCreateWithoutOrganizationInput = {
    id?: string
    partnerId: string
    deliveryDate: Date | string
    status?: $Enums.SupplyOrderStatus
    totalAmount: Decimal | DecimalJsLike | number | string
    totalItems: number
    fulfillmentCenterId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    items?: SupplyOrderItemUncheckedCreateNestedManyWithoutSupplyOrderInput
  }

  export type SupplyOrderCreateOrConnectWithoutOrganizationInput = {
    where: SupplyOrderWhereUniqueInput
    create: XOR<SupplyOrderCreateWithoutOrganizationInput, SupplyOrderUncheckedCreateWithoutOrganizationInput>
  }

  export type SupplyOrderCreateManyOrganizationInputEnvelope = {
    data: SupplyOrderCreateManyOrganizationInput | SupplyOrderCreateManyOrganizationInput[]
    skipDuplicates?: boolean
  }

  export type SupplyOrderCreateWithoutPartnerInput = {
    id?: string
    deliveryDate: Date | string
    status?: $Enums.SupplyOrderStatus
    totalAmount: Decimal | DecimalJsLike | number | string
    totalItems: number
    createdAt?: Date | string
    updatedAt?: Date | string
    items?: SupplyOrderItemCreateNestedManyWithoutSupplyOrderInput
    organization: OrganizationCreateNestedOneWithoutSupplyOrdersInput
    fulfillmentCenter?: OrganizationCreateNestedOneWithoutFulfillmentSupplyOrdersInput
  }

  export type SupplyOrderUncheckedCreateWithoutPartnerInput = {
    id?: string
    deliveryDate: Date | string
    status?: $Enums.SupplyOrderStatus
    totalAmount: Decimal | DecimalJsLike | number | string
    totalItems: number
    fulfillmentCenterId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    organizationId: string
    items?: SupplyOrderItemUncheckedCreateNestedManyWithoutSupplyOrderInput
  }

  export type SupplyOrderCreateOrConnectWithoutPartnerInput = {
    where: SupplyOrderWhereUniqueInput
    create: XOR<SupplyOrderCreateWithoutPartnerInput, SupplyOrderUncheckedCreateWithoutPartnerInput>
  }

  export type SupplyOrderCreateManyPartnerInputEnvelope = {
    data: SupplyOrderCreateManyPartnerInput | SupplyOrderCreateManyPartnerInput[]
    skipDuplicates?: boolean
  }

  export type SupplyOrderCreateWithoutFulfillmentCenterInput = {
    id?: string
    deliveryDate: Date | string
    status?: $Enums.SupplyOrderStatus
    totalAmount: Decimal | DecimalJsLike | number | string
    totalItems: number
    createdAt?: Date | string
    updatedAt?: Date | string
    items?: SupplyOrderItemCreateNestedManyWithoutSupplyOrderInput
    organization: OrganizationCreateNestedOneWithoutSupplyOrdersInput
    partner: OrganizationCreateNestedOneWithoutPartnerSupplyOrdersInput
  }

  export type SupplyOrderUncheckedCreateWithoutFulfillmentCenterInput = {
    id?: string
    partnerId: string
    deliveryDate: Date | string
    status?: $Enums.SupplyOrderStatus
    totalAmount: Decimal | DecimalJsLike | number | string
    totalItems: number
    createdAt?: Date | string
    updatedAt?: Date | string
    organizationId: string
    items?: SupplyOrderItemUncheckedCreateNestedManyWithoutSupplyOrderInput
  }

  export type SupplyOrderCreateOrConnectWithoutFulfillmentCenterInput = {
    where: SupplyOrderWhereUniqueInput
    create: XOR<SupplyOrderCreateWithoutFulfillmentCenterInput, SupplyOrderUncheckedCreateWithoutFulfillmentCenterInput>
  }

  export type SupplyOrderCreateManyFulfillmentCenterInputEnvelope = {
    data: SupplyOrderCreateManyFulfillmentCenterInput | SupplyOrderCreateManyFulfillmentCenterInput[]
    skipDuplicates?: boolean
  }

  export type WildberriesSupplyCreateWithoutOrganizationInput = {
    id?: string
    deliveryDate?: Date | string | null
    status?: $Enums.WildberriesSupplyStatus
    totalAmount: Decimal | DecimalJsLike | number | string
    totalItems: number
    createdAt?: Date | string
    updatedAt?: Date | string
    cards?: WildberriesSupplyCardCreateNestedManyWithoutSupplyInput
  }

  export type WildberriesSupplyUncheckedCreateWithoutOrganizationInput = {
    id?: string
    deliveryDate?: Date | string | null
    status?: $Enums.WildberriesSupplyStatus
    totalAmount: Decimal | DecimalJsLike | number | string
    totalItems: number
    createdAt?: Date | string
    updatedAt?: Date | string
    cards?: WildberriesSupplyCardUncheckedCreateNestedManyWithoutSupplyInput
  }

  export type WildberriesSupplyCreateOrConnectWithoutOrganizationInput = {
    where: WildberriesSupplyWhereUniqueInput
    create: XOR<WildberriesSupplyCreateWithoutOrganizationInput, WildberriesSupplyUncheckedCreateWithoutOrganizationInput>
  }

  export type WildberriesSupplyCreateManyOrganizationInputEnvelope = {
    data: WildberriesSupplyCreateManyOrganizationInput | WildberriesSupplyCreateManyOrganizationInput[]
    skipDuplicates?: boolean
  }

  export type SupplySupplierCreateWithoutOrganizationInput = {
    id?: string
    name: string
    contactName: string
    phone: string
    market?: string | null
    address?: string | null
    place?: string | null
    telegram?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type SupplySupplierUncheckedCreateWithoutOrganizationInput = {
    id?: string
    name: string
    contactName: string
    phone: string
    market?: string | null
    address?: string | null
    place?: string | null
    telegram?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type SupplySupplierCreateOrConnectWithoutOrganizationInput = {
    where: SupplySupplierWhereUniqueInput
    create: XOR<SupplySupplierCreateWithoutOrganizationInput, SupplySupplierUncheckedCreateWithoutOrganizationInput>
  }

  export type SupplySupplierCreateManyOrganizationInputEnvelope = {
    data: SupplySupplierCreateManyOrganizationInput | SupplySupplierCreateManyOrganizationInput[]
    skipDuplicates?: boolean
  }

  export type ApiKeyUpsertWithWhereUniqueWithoutOrganizationInput = {
    where: ApiKeyWhereUniqueInput
    update: XOR<ApiKeyUpdateWithoutOrganizationInput, ApiKeyUncheckedUpdateWithoutOrganizationInput>
    create: XOR<ApiKeyCreateWithoutOrganizationInput, ApiKeyUncheckedCreateWithoutOrganizationInput>
  }

  export type ApiKeyUpdateWithWhereUniqueWithoutOrganizationInput = {
    where: ApiKeyWhereUniqueInput
    data: XOR<ApiKeyUpdateWithoutOrganizationInput, ApiKeyUncheckedUpdateWithoutOrganizationInput>
  }

  export type ApiKeyUpdateManyWithWhereWithoutOrganizationInput = {
    where: ApiKeyScalarWhereInput
    data: XOR<ApiKeyUpdateManyMutationInput, ApiKeyUncheckedUpdateManyWithoutOrganizationInput>
  }

  export type ApiKeyScalarWhereInput = {
    AND?: ApiKeyScalarWhereInput | ApiKeyScalarWhereInput[]
    OR?: ApiKeyScalarWhereInput[]
    NOT?: ApiKeyScalarWhereInput | ApiKeyScalarWhereInput[]
    id?: StringFilter<"ApiKey"> | string
    marketplace?: EnumMarketplaceTypeFilter<"ApiKey"> | $Enums.MarketplaceType
    apiKey?: StringFilter<"ApiKey"> | string
    isActive?: BoolFilter<"ApiKey"> | boolean
    createdAt?: DateTimeFilter<"ApiKey"> | Date | string
    updatedAt?: DateTimeFilter<"ApiKey"> | Date | string
    validationData?: JsonNullableFilter<"ApiKey">
    organizationId?: StringFilter<"ApiKey"> | string
  }

  export type CartUpsertWithoutOrganizationInput = {
    update: XOR<CartUpdateWithoutOrganizationInput, CartUncheckedUpdateWithoutOrganizationInput>
    create: XOR<CartCreateWithoutOrganizationInput, CartUncheckedCreateWithoutOrganizationInput>
    where?: CartWhereInput
  }

  export type CartUpdateToOneWithWhereWithoutOrganizationInput = {
    where?: CartWhereInput
    data: XOR<CartUpdateWithoutOrganizationInput, CartUncheckedUpdateWithoutOrganizationInput>
  }

  export type CartUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    items?: CartItemUpdateManyWithoutCartNestedInput
  }

  export type CartUncheckedUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    items?: CartItemUncheckedUpdateManyWithoutCartNestedInput
  }

  export type CounterpartyUpsertWithWhereUniqueWithoutCounterpartyInput = {
    where: CounterpartyWhereUniqueInput
    update: XOR<CounterpartyUpdateWithoutCounterpartyInput, CounterpartyUncheckedUpdateWithoutCounterpartyInput>
    create: XOR<CounterpartyCreateWithoutCounterpartyInput, CounterpartyUncheckedCreateWithoutCounterpartyInput>
  }

  export type CounterpartyUpdateWithWhereUniqueWithoutCounterpartyInput = {
    where: CounterpartyWhereUniqueInput
    data: XOR<CounterpartyUpdateWithoutCounterpartyInput, CounterpartyUncheckedUpdateWithoutCounterpartyInput>
  }

  export type CounterpartyUpdateManyWithWhereWithoutCounterpartyInput = {
    where: CounterpartyScalarWhereInput
    data: XOR<CounterpartyUpdateManyMutationInput, CounterpartyUncheckedUpdateManyWithoutCounterpartyInput>
  }

  export type CounterpartyScalarWhereInput = {
    AND?: CounterpartyScalarWhereInput | CounterpartyScalarWhereInput[]
    OR?: CounterpartyScalarWhereInput[]
    NOT?: CounterpartyScalarWhereInput | CounterpartyScalarWhereInput[]
    id?: StringFilter<"Counterparty"> | string
    createdAt?: DateTimeFilter<"Counterparty"> | Date | string
    organizationId?: StringFilter<"Counterparty"> | string
    counterpartyId?: StringFilter<"Counterparty"> | string
  }

  export type CounterpartyUpsertWithWhereUniqueWithoutOrganizationInput = {
    where: CounterpartyWhereUniqueInput
    update: XOR<CounterpartyUpdateWithoutOrganizationInput, CounterpartyUncheckedUpdateWithoutOrganizationInput>
    create: XOR<CounterpartyCreateWithoutOrganizationInput, CounterpartyUncheckedCreateWithoutOrganizationInput>
  }

  export type CounterpartyUpdateWithWhereUniqueWithoutOrganizationInput = {
    where: CounterpartyWhereUniqueInput
    data: XOR<CounterpartyUpdateWithoutOrganizationInput, CounterpartyUncheckedUpdateWithoutOrganizationInput>
  }

  export type CounterpartyUpdateManyWithWhereWithoutOrganizationInput = {
    where: CounterpartyScalarWhereInput
    data: XOR<CounterpartyUpdateManyMutationInput, CounterpartyUncheckedUpdateManyWithoutOrganizationInput>
  }

  export type CounterpartyRequestUpsertWithWhereUniqueWithoutReceiverInput = {
    where: CounterpartyRequestWhereUniqueInput
    update: XOR<CounterpartyRequestUpdateWithoutReceiverInput, CounterpartyRequestUncheckedUpdateWithoutReceiverInput>
    create: XOR<CounterpartyRequestCreateWithoutReceiverInput, CounterpartyRequestUncheckedCreateWithoutReceiverInput>
  }

  export type CounterpartyRequestUpdateWithWhereUniqueWithoutReceiverInput = {
    where: CounterpartyRequestWhereUniqueInput
    data: XOR<CounterpartyRequestUpdateWithoutReceiverInput, CounterpartyRequestUncheckedUpdateWithoutReceiverInput>
  }

  export type CounterpartyRequestUpdateManyWithWhereWithoutReceiverInput = {
    where: CounterpartyRequestScalarWhereInput
    data: XOR<CounterpartyRequestUpdateManyMutationInput, CounterpartyRequestUncheckedUpdateManyWithoutReceiverInput>
  }

  export type CounterpartyRequestScalarWhereInput = {
    AND?: CounterpartyRequestScalarWhereInput | CounterpartyRequestScalarWhereInput[]
    OR?: CounterpartyRequestScalarWhereInput[]
    NOT?: CounterpartyRequestScalarWhereInput | CounterpartyRequestScalarWhereInput[]
    id?: StringFilter<"CounterpartyRequest"> | string
    status?: EnumCounterpartyRequestStatusFilter<"CounterpartyRequest"> | $Enums.CounterpartyRequestStatus
    createdAt?: DateTimeFilter<"CounterpartyRequest"> | Date | string
    updatedAt?: DateTimeFilter<"CounterpartyRequest"> | Date | string
    senderId?: StringFilter<"CounterpartyRequest"> | string
    receiverId?: StringFilter<"CounterpartyRequest"> | string
    message?: StringNullableFilter<"CounterpartyRequest"> | string | null
  }

  export type CounterpartyRequestUpsertWithWhereUniqueWithoutSenderInput = {
    where: CounterpartyRequestWhereUniqueInput
    update: XOR<CounterpartyRequestUpdateWithoutSenderInput, CounterpartyRequestUncheckedUpdateWithoutSenderInput>
    create: XOR<CounterpartyRequestCreateWithoutSenderInput, CounterpartyRequestUncheckedCreateWithoutSenderInput>
  }

  export type CounterpartyRequestUpdateWithWhereUniqueWithoutSenderInput = {
    where: CounterpartyRequestWhereUniqueInput
    data: XOR<CounterpartyRequestUpdateWithoutSenderInput, CounterpartyRequestUncheckedUpdateWithoutSenderInput>
  }

  export type CounterpartyRequestUpdateManyWithWhereWithoutSenderInput = {
    where: CounterpartyRequestScalarWhereInput
    data: XOR<CounterpartyRequestUpdateManyMutationInput, CounterpartyRequestUncheckedUpdateManyWithoutSenderInput>
  }

  export type EmployeeUpsertWithWhereUniqueWithoutOrganizationInput = {
    where: EmployeeWhereUniqueInput
    update: XOR<EmployeeUpdateWithoutOrganizationInput, EmployeeUncheckedUpdateWithoutOrganizationInput>
    create: XOR<EmployeeCreateWithoutOrganizationInput, EmployeeUncheckedCreateWithoutOrganizationInput>
  }

  export type EmployeeUpdateWithWhereUniqueWithoutOrganizationInput = {
    where: EmployeeWhereUniqueInput
    data: XOR<EmployeeUpdateWithoutOrganizationInput, EmployeeUncheckedUpdateWithoutOrganizationInput>
  }

  export type EmployeeUpdateManyWithWhereWithoutOrganizationInput = {
    where: EmployeeScalarWhereInput
    data: XOR<EmployeeUpdateManyMutationInput, EmployeeUncheckedUpdateManyWithoutOrganizationInput>
  }

  export type EmployeeScalarWhereInput = {
    AND?: EmployeeScalarWhereInput | EmployeeScalarWhereInput[]
    OR?: EmployeeScalarWhereInput[]
    NOT?: EmployeeScalarWhereInput | EmployeeScalarWhereInput[]
    id?: StringFilter<"Employee"> | string
    firstName?: StringFilter<"Employee"> | string
    lastName?: StringFilter<"Employee"> | string
    middleName?: StringNullableFilter<"Employee"> | string | null
    birthDate?: DateTimeNullableFilter<"Employee"> | Date | string | null
    avatar?: StringNullableFilter<"Employee"> | string | null
    passportPhoto?: StringNullableFilter<"Employee"> | string | null
    passportSeries?: StringNullableFilter<"Employee"> | string | null
    passportNumber?: StringNullableFilter<"Employee"> | string | null
    passportIssued?: StringNullableFilter<"Employee"> | string | null
    passportDate?: DateTimeNullableFilter<"Employee"> | Date | string | null
    address?: StringNullableFilter<"Employee"> | string | null
    position?: StringFilter<"Employee"> | string
    department?: StringNullableFilter<"Employee"> | string | null
    hireDate?: DateTimeFilter<"Employee"> | Date | string
    salary?: FloatNullableFilter<"Employee"> | number | null
    status?: EnumEmployeeStatusFilter<"Employee"> | $Enums.EmployeeStatus
    phone?: StringFilter<"Employee"> | string
    email?: StringNullableFilter<"Employee"> | string | null
    telegram?: StringNullableFilter<"Employee"> | string | null
    whatsapp?: StringNullableFilter<"Employee"> | string | null
    emergencyContact?: StringNullableFilter<"Employee"> | string | null
    emergencyPhone?: StringNullableFilter<"Employee"> | string | null
    organizationId?: StringFilter<"Employee"> | string
    createdAt?: DateTimeFilter<"Employee"> | Date | string
    updatedAt?: DateTimeFilter<"Employee"> | Date | string
  }

  export type FavoritesUpsertWithWhereUniqueWithoutOrganizationInput = {
    where: FavoritesWhereUniqueInput
    update: XOR<FavoritesUpdateWithoutOrganizationInput, FavoritesUncheckedUpdateWithoutOrganizationInput>
    create: XOR<FavoritesCreateWithoutOrganizationInput, FavoritesUncheckedCreateWithoutOrganizationInput>
  }

  export type FavoritesUpdateWithWhereUniqueWithoutOrganizationInput = {
    where: FavoritesWhereUniqueInput
    data: XOR<FavoritesUpdateWithoutOrganizationInput, FavoritesUncheckedUpdateWithoutOrganizationInput>
  }

  export type FavoritesUpdateManyWithWhereWithoutOrganizationInput = {
    where: FavoritesScalarWhereInput
    data: XOR<FavoritesUpdateManyMutationInput, FavoritesUncheckedUpdateManyWithoutOrganizationInput>
  }

  export type FavoritesScalarWhereInput = {
    AND?: FavoritesScalarWhereInput | FavoritesScalarWhereInput[]
    OR?: FavoritesScalarWhereInput[]
    NOT?: FavoritesScalarWhereInput | FavoritesScalarWhereInput[]
    id?: StringFilter<"Favorites"> | string
    organizationId?: StringFilter<"Favorites"> | string
    productId?: StringFilter<"Favorites"> | string
    createdAt?: DateTimeFilter<"Favorites"> | Date | string
    updatedAt?: DateTimeFilter<"Favorites"> | Date | string
  }

  export type MessageUpsertWithWhereUniqueWithoutReceiverOrganizationInput = {
    where: MessageWhereUniqueInput
    update: XOR<MessageUpdateWithoutReceiverOrganizationInput, MessageUncheckedUpdateWithoutReceiverOrganizationInput>
    create: XOR<MessageCreateWithoutReceiverOrganizationInput, MessageUncheckedCreateWithoutReceiverOrganizationInput>
  }

  export type MessageUpdateWithWhereUniqueWithoutReceiverOrganizationInput = {
    where: MessageWhereUniqueInput
    data: XOR<MessageUpdateWithoutReceiverOrganizationInput, MessageUncheckedUpdateWithoutReceiverOrganizationInput>
  }

  export type MessageUpdateManyWithWhereWithoutReceiverOrganizationInput = {
    where: MessageScalarWhereInput
    data: XOR<MessageUpdateManyMutationInput, MessageUncheckedUpdateManyWithoutReceiverOrganizationInput>
  }

  export type MessageUpsertWithWhereUniqueWithoutSenderOrganizationInput = {
    where: MessageWhereUniqueInput
    update: XOR<MessageUpdateWithoutSenderOrganizationInput, MessageUncheckedUpdateWithoutSenderOrganizationInput>
    create: XOR<MessageCreateWithoutSenderOrganizationInput, MessageUncheckedCreateWithoutSenderOrganizationInput>
  }

  export type MessageUpdateWithWhereUniqueWithoutSenderOrganizationInput = {
    where: MessageWhereUniqueInput
    data: XOR<MessageUpdateWithoutSenderOrganizationInput, MessageUncheckedUpdateWithoutSenderOrganizationInput>
  }

  export type MessageUpdateManyWithWhereWithoutSenderOrganizationInput = {
    where: MessageScalarWhereInput
    data: XOR<MessageUpdateManyMutationInput, MessageUncheckedUpdateManyWithoutSenderOrganizationInput>
  }

  export type ProductUpsertWithWhereUniqueWithoutOrganizationInput = {
    where: ProductWhereUniqueInput
    update: XOR<ProductUpdateWithoutOrganizationInput, ProductUncheckedUpdateWithoutOrganizationInput>
    create: XOR<ProductCreateWithoutOrganizationInput, ProductUncheckedCreateWithoutOrganizationInput>
  }

  export type ProductUpdateWithWhereUniqueWithoutOrganizationInput = {
    where: ProductWhereUniqueInput
    data: XOR<ProductUpdateWithoutOrganizationInput, ProductUncheckedUpdateWithoutOrganizationInput>
  }

  export type ProductUpdateManyWithWhereWithoutOrganizationInput = {
    where: ProductScalarWhereInput
    data: XOR<ProductUpdateManyMutationInput, ProductUncheckedUpdateManyWithoutOrganizationInput>
  }

  export type ProductScalarWhereInput = {
    AND?: ProductScalarWhereInput | ProductScalarWhereInput[]
    OR?: ProductScalarWhereInput[]
    NOT?: ProductScalarWhereInput | ProductScalarWhereInput[]
    id?: StringFilter<"Product"> | string
    name?: StringFilter<"Product"> | string
    article?: StringFilter<"Product"> | string
    description?: StringNullableFilter<"Product"> | string | null
    price?: DecimalFilter<"Product"> | Decimal | DecimalJsLike | number | string
    quantity?: IntFilter<"Product"> | number
    categoryId?: StringNullableFilter<"Product"> | string | null
    brand?: StringNullableFilter<"Product"> | string | null
    color?: StringNullableFilter<"Product"> | string | null
    size?: StringNullableFilter<"Product"> | string | null
    weight?: DecimalNullableFilter<"Product"> | Decimal | DecimalJsLike | number | string | null
    dimensions?: StringNullableFilter<"Product"> | string | null
    material?: StringNullableFilter<"Product"> | string | null
    images?: JsonFilter<"Product">
    mainImage?: StringNullableFilter<"Product"> | string | null
    isActive?: BoolFilter<"Product"> | boolean
    createdAt?: DateTimeFilter<"Product"> | Date | string
    updatedAt?: DateTimeFilter<"Product"> | Date | string
    organizationId?: StringFilter<"Product"> | string
  }

  export type ServiceUpsertWithWhereUniqueWithoutOrganizationInput = {
    where: ServiceWhereUniqueInput
    update: XOR<ServiceUpdateWithoutOrganizationInput, ServiceUncheckedUpdateWithoutOrganizationInput>
    create: XOR<ServiceCreateWithoutOrganizationInput, ServiceUncheckedCreateWithoutOrganizationInput>
  }

  export type ServiceUpdateWithWhereUniqueWithoutOrganizationInput = {
    where: ServiceWhereUniqueInput
    data: XOR<ServiceUpdateWithoutOrganizationInput, ServiceUncheckedUpdateWithoutOrganizationInput>
  }

  export type ServiceUpdateManyWithWhereWithoutOrganizationInput = {
    where: ServiceScalarWhereInput
    data: XOR<ServiceUpdateManyMutationInput, ServiceUncheckedUpdateManyWithoutOrganizationInput>
  }

  export type ServiceScalarWhereInput = {
    AND?: ServiceScalarWhereInput | ServiceScalarWhereInput[]
    OR?: ServiceScalarWhereInput[]
    NOT?: ServiceScalarWhereInput | ServiceScalarWhereInput[]
    id?: StringFilter<"Service"> | string
    name?: StringFilter<"Service"> | string
    description?: StringNullableFilter<"Service"> | string | null
    price?: DecimalFilter<"Service"> | Decimal | DecimalJsLike | number | string
    imageUrl?: StringNullableFilter<"Service"> | string | null
    createdAt?: DateTimeFilter<"Service"> | Date | string
    updatedAt?: DateTimeFilter<"Service"> | Date | string
    organizationId?: StringFilter<"Service"> | string
  }

  export type SupplyUpsertWithWhereUniqueWithoutOrganizationInput = {
    where: SupplyWhereUniqueInput
    update: XOR<SupplyUpdateWithoutOrganizationInput, SupplyUncheckedUpdateWithoutOrganizationInput>
    create: XOR<SupplyCreateWithoutOrganizationInput, SupplyUncheckedCreateWithoutOrganizationInput>
  }

  export type SupplyUpdateWithWhereUniqueWithoutOrganizationInput = {
    where: SupplyWhereUniqueInput
    data: XOR<SupplyUpdateWithoutOrganizationInput, SupplyUncheckedUpdateWithoutOrganizationInput>
  }

  export type SupplyUpdateManyWithWhereWithoutOrganizationInput = {
    where: SupplyScalarWhereInput
    data: XOR<SupplyUpdateManyMutationInput, SupplyUncheckedUpdateManyWithoutOrganizationInput>
  }

  export type SupplyScalarWhereInput = {
    AND?: SupplyScalarWhereInput | SupplyScalarWhereInput[]
    OR?: SupplyScalarWhereInput[]
    NOT?: SupplyScalarWhereInput | SupplyScalarWhereInput[]
    id?: StringFilter<"Supply"> | string
    name?: StringFilter<"Supply"> | string
    description?: StringNullableFilter<"Supply"> | string | null
    price?: DecimalFilter<"Supply"> | Decimal | DecimalJsLike | number | string
    quantity?: IntFilter<"Supply"> | number
    unit?: StringFilter<"Supply"> | string
    category?: StringFilter<"Supply"> | string
    status?: StringFilter<"Supply"> | string
    date?: DateTimeFilter<"Supply"> | Date | string
    supplier?: StringFilter<"Supply"> | string
    minStock?: IntFilter<"Supply"> | number
    currentStock?: IntFilter<"Supply"> | number
    imageUrl?: StringNullableFilter<"Supply"> | string | null
    createdAt?: DateTimeFilter<"Supply"> | Date | string
    updatedAt?: DateTimeFilter<"Supply"> | Date | string
    organizationId?: StringFilter<"Supply"> | string
  }

  export type UserUpsertWithWhereUniqueWithoutOrganizationInput = {
    where: UserWhereUniqueInput
    update: XOR<UserUpdateWithoutOrganizationInput, UserUncheckedUpdateWithoutOrganizationInput>
    create: XOR<UserCreateWithoutOrganizationInput, UserUncheckedCreateWithoutOrganizationInput>
  }

  export type UserUpdateWithWhereUniqueWithoutOrganizationInput = {
    where: UserWhereUniqueInput
    data: XOR<UserUpdateWithoutOrganizationInput, UserUncheckedUpdateWithoutOrganizationInput>
  }

  export type UserUpdateManyWithWhereWithoutOrganizationInput = {
    where: UserScalarWhereInput
    data: XOR<UserUpdateManyMutationInput, UserUncheckedUpdateManyWithoutOrganizationInput>
  }

  export type UserScalarWhereInput = {
    AND?: UserScalarWhereInput | UserScalarWhereInput[]
    OR?: UserScalarWhereInput[]
    NOT?: UserScalarWhereInput | UserScalarWhereInput[]
    id?: StringFilter<"User"> | string
    phone?: StringFilter<"User"> | string
    avatar?: StringNullableFilter<"User"> | string | null
    managerName?: StringNullableFilter<"User"> | string | null
    createdAt?: DateTimeFilter<"User"> | Date | string
    updatedAt?: DateTimeFilter<"User"> | Date | string
    organizationId?: StringNullableFilter<"User"> | string | null
  }

  export type LogisticsUpsertWithWhereUniqueWithoutOrganizationInput = {
    where: LogisticsWhereUniqueInput
    update: XOR<LogisticsUpdateWithoutOrganizationInput, LogisticsUncheckedUpdateWithoutOrganizationInput>
    create: XOR<LogisticsCreateWithoutOrganizationInput, LogisticsUncheckedCreateWithoutOrganizationInput>
  }

  export type LogisticsUpdateWithWhereUniqueWithoutOrganizationInput = {
    where: LogisticsWhereUniqueInput
    data: XOR<LogisticsUpdateWithoutOrganizationInput, LogisticsUncheckedUpdateWithoutOrganizationInput>
  }

  export type LogisticsUpdateManyWithWhereWithoutOrganizationInput = {
    where: LogisticsScalarWhereInput
    data: XOR<LogisticsUpdateManyMutationInput, LogisticsUncheckedUpdateManyWithoutOrganizationInput>
  }

  export type LogisticsScalarWhereInput = {
    AND?: LogisticsScalarWhereInput | LogisticsScalarWhereInput[]
    OR?: LogisticsScalarWhereInput[]
    NOT?: LogisticsScalarWhereInput | LogisticsScalarWhereInput[]
    id?: StringFilter<"Logistics"> | string
    fromLocation?: StringFilter<"Logistics"> | string
    toLocation?: StringFilter<"Logistics"> | string
    priceUnder1m3?: FloatFilter<"Logistics"> | number
    priceOver1m3?: FloatFilter<"Logistics"> | number
    description?: StringNullableFilter<"Logistics"> | string | null
    createdAt?: DateTimeFilter<"Logistics"> | Date | string
    updatedAt?: DateTimeFilter<"Logistics"> | Date | string
    organizationId?: StringFilter<"Logistics"> | string
  }

  export type SupplyOrderUpsertWithWhereUniqueWithoutOrganizationInput = {
    where: SupplyOrderWhereUniqueInput
    update: XOR<SupplyOrderUpdateWithoutOrganizationInput, SupplyOrderUncheckedUpdateWithoutOrganizationInput>
    create: XOR<SupplyOrderCreateWithoutOrganizationInput, SupplyOrderUncheckedCreateWithoutOrganizationInput>
  }

  export type SupplyOrderUpdateWithWhereUniqueWithoutOrganizationInput = {
    where: SupplyOrderWhereUniqueInput
    data: XOR<SupplyOrderUpdateWithoutOrganizationInput, SupplyOrderUncheckedUpdateWithoutOrganizationInput>
  }

  export type SupplyOrderUpdateManyWithWhereWithoutOrganizationInput = {
    where: SupplyOrderScalarWhereInput
    data: XOR<SupplyOrderUpdateManyMutationInput, SupplyOrderUncheckedUpdateManyWithoutOrganizationInput>
  }

  export type SupplyOrderScalarWhereInput = {
    AND?: SupplyOrderScalarWhereInput | SupplyOrderScalarWhereInput[]
    OR?: SupplyOrderScalarWhereInput[]
    NOT?: SupplyOrderScalarWhereInput | SupplyOrderScalarWhereInput[]
    id?: StringFilter<"SupplyOrder"> | string
    partnerId?: StringFilter<"SupplyOrder"> | string
    deliveryDate?: DateTimeFilter<"SupplyOrder"> | Date | string
    status?: EnumSupplyOrderStatusFilter<"SupplyOrder"> | $Enums.SupplyOrderStatus
    totalAmount?: DecimalFilter<"SupplyOrder"> | Decimal | DecimalJsLike | number | string
    totalItems?: IntFilter<"SupplyOrder"> | number
    fulfillmentCenterId?: StringNullableFilter<"SupplyOrder"> | string | null
    createdAt?: DateTimeFilter<"SupplyOrder"> | Date | string
    updatedAt?: DateTimeFilter<"SupplyOrder"> | Date | string
    organizationId?: StringFilter<"SupplyOrder"> | string
  }

  export type SupplyOrderUpsertWithWhereUniqueWithoutPartnerInput = {
    where: SupplyOrderWhereUniqueInput
    update: XOR<SupplyOrderUpdateWithoutPartnerInput, SupplyOrderUncheckedUpdateWithoutPartnerInput>
    create: XOR<SupplyOrderCreateWithoutPartnerInput, SupplyOrderUncheckedCreateWithoutPartnerInput>
  }

  export type SupplyOrderUpdateWithWhereUniqueWithoutPartnerInput = {
    where: SupplyOrderWhereUniqueInput
    data: XOR<SupplyOrderUpdateWithoutPartnerInput, SupplyOrderUncheckedUpdateWithoutPartnerInput>
  }

  export type SupplyOrderUpdateManyWithWhereWithoutPartnerInput = {
    where: SupplyOrderScalarWhereInput
    data: XOR<SupplyOrderUpdateManyMutationInput, SupplyOrderUncheckedUpdateManyWithoutPartnerInput>
  }

  export type SupplyOrderUpsertWithWhereUniqueWithoutFulfillmentCenterInput = {
    where: SupplyOrderWhereUniqueInput
    update: XOR<SupplyOrderUpdateWithoutFulfillmentCenterInput, SupplyOrderUncheckedUpdateWithoutFulfillmentCenterInput>
    create: XOR<SupplyOrderCreateWithoutFulfillmentCenterInput, SupplyOrderUncheckedCreateWithoutFulfillmentCenterInput>
  }

  export type SupplyOrderUpdateWithWhereUniqueWithoutFulfillmentCenterInput = {
    where: SupplyOrderWhereUniqueInput
    data: XOR<SupplyOrderUpdateWithoutFulfillmentCenterInput, SupplyOrderUncheckedUpdateWithoutFulfillmentCenterInput>
  }

  export type SupplyOrderUpdateManyWithWhereWithoutFulfillmentCenterInput = {
    where: SupplyOrderScalarWhereInput
    data: XOR<SupplyOrderUpdateManyMutationInput, SupplyOrderUncheckedUpdateManyWithoutFulfillmentCenterInput>
  }

  export type WildberriesSupplyUpsertWithWhereUniqueWithoutOrganizationInput = {
    where: WildberriesSupplyWhereUniqueInput
    update: XOR<WildberriesSupplyUpdateWithoutOrganizationInput, WildberriesSupplyUncheckedUpdateWithoutOrganizationInput>
    create: XOR<WildberriesSupplyCreateWithoutOrganizationInput, WildberriesSupplyUncheckedCreateWithoutOrganizationInput>
  }

  export type WildberriesSupplyUpdateWithWhereUniqueWithoutOrganizationInput = {
    where: WildberriesSupplyWhereUniqueInput
    data: XOR<WildberriesSupplyUpdateWithoutOrganizationInput, WildberriesSupplyUncheckedUpdateWithoutOrganizationInput>
  }

  export type WildberriesSupplyUpdateManyWithWhereWithoutOrganizationInput = {
    where: WildberriesSupplyScalarWhereInput
    data: XOR<WildberriesSupplyUpdateManyMutationInput, WildberriesSupplyUncheckedUpdateManyWithoutOrganizationInput>
  }

  export type WildberriesSupplyScalarWhereInput = {
    AND?: WildberriesSupplyScalarWhereInput | WildberriesSupplyScalarWhereInput[]
    OR?: WildberriesSupplyScalarWhereInput[]
    NOT?: WildberriesSupplyScalarWhereInput | WildberriesSupplyScalarWhereInput[]
    id?: StringFilter<"WildberriesSupply"> | string
    organizationId?: StringFilter<"WildberriesSupply"> | string
    deliveryDate?: DateTimeNullableFilter<"WildberriesSupply"> | Date | string | null
    status?: EnumWildberriesSupplyStatusFilter<"WildberriesSupply"> | $Enums.WildberriesSupplyStatus
    totalAmount?: DecimalFilter<"WildberriesSupply"> | Decimal | DecimalJsLike | number | string
    totalItems?: IntFilter<"WildberriesSupply"> | number
    createdAt?: DateTimeFilter<"WildberriesSupply"> | Date | string
    updatedAt?: DateTimeFilter<"WildberriesSupply"> | Date | string
  }

  export type SupplySupplierUpsertWithWhereUniqueWithoutOrganizationInput = {
    where: SupplySupplierWhereUniqueInput
    update: XOR<SupplySupplierUpdateWithoutOrganizationInput, SupplySupplierUncheckedUpdateWithoutOrganizationInput>
    create: XOR<SupplySupplierCreateWithoutOrganizationInput, SupplySupplierUncheckedCreateWithoutOrganizationInput>
  }

  export type SupplySupplierUpdateWithWhereUniqueWithoutOrganizationInput = {
    where: SupplySupplierWhereUniqueInput
    data: XOR<SupplySupplierUpdateWithoutOrganizationInput, SupplySupplierUncheckedUpdateWithoutOrganizationInput>
  }

  export type SupplySupplierUpdateManyWithWhereWithoutOrganizationInput = {
    where: SupplySupplierScalarWhereInput
    data: XOR<SupplySupplierUpdateManyMutationInput, SupplySupplierUncheckedUpdateManyWithoutOrganizationInput>
  }

  export type SupplySupplierScalarWhereInput = {
    AND?: SupplySupplierScalarWhereInput | SupplySupplierScalarWhereInput[]
    OR?: SupplySupplierScalarWhereInput[]
    NOT?: SupplySupplierScalarWhereInput | SupplySupplierScalarWhereInput[]
    id?: StringFilter<"SupplySupplier"> | string
    name?: StringFilter<"SupplySupplier"> | string
    contactName?: StringFilter<"SupplySupplier"> | string
    phone?: StringFilter<"SupplySupplier"> | string
    market?: StringNullableFilter<"SupplySupplier"> | string | null
    address?: StringNullableFilter<"SupplySupplier"> | string | null
    place?: StringNullableFilter<"SupplySupplier"> | string | null
    telegram?: StringNullableFilter<"SupplySupplier"> | string | null
    organizationId?: StringFilter<"SupplySupplier"> | string
    createdAt?: DateTimeFilter<"SupplySupplier"> | Date | string
    updatedAt?: DateTimeFilter<"SupplySupplier"> | Date | string
  }

  export type OrganizationCreateWithoutApiKeysInput = {
    id?: string
    inn: string
    kpp?: string | null
    name?: string | null
    fullName?: string | null
    ogrn?: string | null
    ogrnDate?: Date | string | null
    type: $Enums.OrganizationType
    createdAt?: Date | string
    updatedAt?: Date | string
    address?: string | null
    addressFull?: string | null
    status?: string | null
    actualityDate?: Date | string | null
    registrationDate?: Date | string | null
    liquidationDate?: Date | string | null
    managementName?: string | null
    managementPost?: string | null
    opfCode?: string | null
    opfFull?: string | null
    opfShort?: string | null
    okato?: string | null
    oktmo?: string | null
    okpo?: string | null
    okved?: string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: number | null
    revenue?: bigint | number | null
    taxSystem?: string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    carts?: CartCreateNestedOneWithoutOrganizationInput
    counterpartyOf?: CounterpartyCreateNestedManyWithoutCounterpartyInput
    organizationCounterparties?: CounterpartyCreateNestedManyWithoutOrganizationInput
    receivedRequests?: CounterpartyRequestCreateNestedManyWithoutReceiverInput
    sentRequests?: CounterpartyRequestCreateNestedManyWithoutSenderInput
    employees?: EmployeeCreateNestedManyWithoutOrganizationInput
    favorites?: FavoritesCreateNestedManyWithoutOrganizationInput
    receivedMessages?: MessageCreateNestedManyWithoutReceiverOrganizationInput
    sentMessages?: MessageCreateNestedManyWithoutSenderOrganizationInput
    products?: ProductCreateNestedManyWithoutOrganizationInput
    services?: ServiceCreateNestedManyWithoutOrganizationInput
    supplies?: SupplyCreateNestedManyWithoutOrganizationInput
    users?: UserCreateNestedManyWithoutOrganizationInput
    logistics?: LogisticsCreateNestedManyWithoutOrganizationInput
    supplyOrders?: SupplyOrderCreateNestedManyWithoutOrganizationInput
    partnerSupplyOrders?: SupplyOrderCreateNestedManyWithoutPartnerInput
    fulfillmentSupplyOrders?: SupplyOrderCreateNestedManyWithoutFulfillmentCenterInput
    wildberriesSupplies?: WildberriesSupplyCreateNestedManyWithoutOrganizationInput
    supplySuppliers?: SupplySupplierCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationUncheckedCreateWithoutApiKeysInput = {
    id?: string
    inn: string
    kpp?: string | null
    name?: string | null
    fullName?: string | null
    ogrn?: string | null
    ogrnDate?: Date | string | null
    type: $Enums.OrganizationType
    createdAt?: Date | string
    updatedAt?: Date | string
    address?: string | null
    addressFull?: string | null
    status?: string | null
    actualityDate?: Date | string | null
    registrationDate?: Date | string | null
    liquidationDate?: Date | string | null
    managementName?: string | null
    managementPost?: string | null
    opfCode?: string | null
    opfFull?: string | null
    opfShort?: string | null
    okato?: string | null
    oktmo?: string | null
    okpo?: string | null
    okved?: string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: number | null
    revenue?: bigint | number | null
    taxSystem?: string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    carts?: CartUncheckedCreateNestedOneWithoutOrganizationInput
    counterpartyOf?: CounterpartyUncheckedCreateNestedManyWithoutCounterpartyInput
    organizationCounterparties?: CounterpartyUncheckedCreateNestedManyWithoutOrganizationInput
    receivedRequests?: CounterpartyRequestUncheckedCreateNestedManyWithoutReceiverInput
    sentRequests?: CounterpartyRequestUncheckedCreateNestedManyWithoutSenderInput
    employees?: EmployeeUncheckedCreateNestedManyWithoutOrganizationInput
    favorites?: FavoritesUncheckedCreateNestedManyWithoutOrganizationInput
    receivedMessages?: MessageUncheckedCreateNestedManyWithoutReceiverOrganizationInput
    sentMessages?: MessageUncheckedCreateNestedManyWithoutSenderOrganizationInput
    products?: ProductUncheckedCreateNestedManyWithoutOrganizationInput
    services?: ServiceUncheckedCreateNestedManyWithoutOrganizationInput
    supplies?: SupplyUncheckedCreateNestedManyWithoutOrganizationInput
    users?: UserUncheckedCreateNestedManyWithoutOrganizationInput
    logistics?: LogisticsUncheckedCreateNestedManyWithoutOrganizationInput
    supplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutOrganizationInput
    partnerSupplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutPartnerInput
    fulfillmentSupplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutFulfillmentCenterInput
    wildberriesSupplies?: WildberriesSupplyUncheckedCreateNestedManyWithoutOrganizationInput
    supplySuppliers?: SupplySupplierUncheckedCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationCreateOrConnectWithoutApiKeysInput = {
    where: OrganizationWhereUniqueInput
    create: XOR<OrganizationCreateWithoutApiKeysInput, OrganizationUncheckedCreateWithoutApiKeysInput>
  }

  export type OrganizationUpsertWithoutApiKeysInput = {
    update: XOR<OrganizationUpdateWithoutApiKeysInput, OrganizationUncheckedUpdateWithoutApiKeysInput>
    create: XOR<OrganizationCreateWithoutApiKeysInput, OrganizationUncheckedCreateWithoutApiKeysInput>
    where?: OrganizationWhereInput
  }

  export type OrganizationUpdateToOneWithWhereWithoutApiKeysInput = {
    where?: OrganizationWhereInput
    data: XOR<OrganizationUpdateWithoutApiKeysInput, OrganizationUncheckedUpdateWithoutApiKeysInput>
  }

  export type OrganizationUpdateWithoutApiKeysInput = {
    id?: StringFieldUpdateOperationsInput | string
    inn?: StringFieldUpdateOperationsInput | string
    kpp?: NullableStringFieldUpdateOperationsInput | string | null
    name?: NullableStringFieldUpdateOperationsInput | string | null
    fullName?: NullableStringFieldUpdateOperationsInput | string | null
    ogrn?: NullableStringFieldUpdateOperationsInput | string | null
    ogrnDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    type?: EnumOrganizationTypeFieldUpdateOperationsInput | $Enums.OrganizationType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    address?: NullableStringFieldUpdateOperationsInput | string | null
    addressFull?: NullableStringFieldUpdateOperationsInput | string | null
    status?: NullableStringFieldUpdateOperationsInput | string | null
    actualityDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    registrationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    liquidationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managementName?: NullableStringFieldUpdateOperationsInput | string | null
    managementPost?: NullableStringFieldUpdateOperationsInput | string | null
    opfCode?: NullableStringFieldUpdateOperationsInput | string | null
    opfFull?: NullableStringFieldUpdateOperationsInput | string | null
    opfShort?: NullableStringFieldUpdateOperationsInput | string | null
    okato?: NullableStringFieldUpdateOperationsInput | string | null
    oktmo?: NullableStringFieldUpdateOperationsInput | string | null
    okpo?: NullableStringFieldUpdateOperationsInput | string | null
    okved?: NullableStringFieldUpdateOperationsInput | string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: NullableIntFieldUpdateOperationsInput | number | null
    revenue?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    taxSystem?: NullableStringFieldUpdateOperationsInput | string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    carts?: CartUpdateOneWithoutOrganizationNestedInput
    counterpartyOf?: CounterpartyUpdateManyWithoutCounterpartyNestedInput
    organizationCounterparties?: CounterpartyUpdateManyWithoutOrganizationNestedInput
    receivedRequests?: CounterpartyRequestUpdateManyWithoutReceiverNestedInput
    sentRequests?: CounterpartyRequestUpdateManyWithoutSenderNestedInput
    employees?: EmployeeUpdateManyWithoutOrganizationNestedInput
    favorites?: FavoritesUpdateManyWithoutOrganizationNestedInput
    receivedMessages?: MessageUpdateManyWithoutReceiverOrganizationNestedInput
    sentMessages?: MessageUpdateManyWithoutSenderOrganizationNestedInput
    products?: ProductUpdateManyWithoutOrganizationNestedInput
    services?: ServiceUpdateManyWithoutOrganizationNestedInput
    supplies?: SupplyUpdateManyWithoutOrganizationNestedInput
    users?: UserUpdateManyWithoutOrganizationNestedInput
    logistics?: LogisticsUpdateManyWithoutOrganizationNestedInput
    supplyOrders?: SupplyOrderUpdateManyWithoutOrganizationNestedInput
    partnerSupplyOrders?: SupplyOrderUpdateManyWithoutPartnerNestedInput
    fulfillmentSupplyOrders?: SupplyOrderUpdateManyWithoutFulfillmentCenterNestedInput
    wildberriesSupplies?: WildberriesSupplyUpdateManyWithoutOrganizationNestedInput
    supplySuppliers?: SupplySupplierUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationUncheckedUpdateWithoutApiKeysInput = {
    id?: StringFieldUpdateOperationsInput | string
    inn?: StringFieldUpdateOperationsInput | string
    kpp?: NullableStringFieldUpdateOperationsInput | string | null
    name?: NullableStringFieldUpdateOperationsInput | string | null
    fullName?: NullableStringFieldUpdateOperationsInput | string | null
    ogrn?: NullableStringFieldUpdateOperationsInput | string | null
    ogrnDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    type?: EnumOrganizationTypeFieldUpdateOperationsInput | $Enums.OrganizationType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    address?: NullableStringFieldUpdateOperationsInput | string | null
    addressFull?: NullableStringFieldUpdateOperationsInput | string | null
    status?: NullableStringFieldUpdateOperationsInput | string | null
    actualityDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    registrationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    liquidationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managementName?: NullableStringFieldUpdateOperationsInput | string | null
    managementPost?: NullableStringFieldUpdateOperationsInput | string | null
    opfCode?: NullableStringFieldUpdateOperationsInput | string | null
    opfFull?: NullableStringFieldUpdateOperationsInput | string | null
    opfShort?: NullableStringFieldUpdateOperationsInput | string | null
    okato?: NullableStringFieldUpdateOperationsInput | string | null
    oktmo?: NullableStringFieldUpdateOperationsInput | string | null
    okpo?: NullableStringFieldUpdateOperationsInput | string | null
    okved?: NullableStringFieldUpdateOperationsInput | string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: NullableIntFieldUpdateOperationsInput | number | null
    revenue?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    taxSystem?: NullableStringFieldUpdateOperationsInput | string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    carts?: CartUncheckedUpdateOneWithoutOrganizationNestedInput
    counterpartyOf?: CounterpartyUncheckedUpdateManyWithoutCounterpartyNestedInput
    organizationCounterparties?: CounterpartyUncheckedUpdateManyWithoutOrganizationNestedInput
    receivedRequests?: CounterpartyRequestUncheckedUpdateManyWithoutReceiverNestedInput
    sentRequests?: CounterpartyRequestUncheckedUpdateManyWithoutSenderNestedInput
    employees?: EmployeeUncheckedUpdateManyWithoutOrganizationNestedInput
    favorites?: FavoritesUncheckedUpdateManyWithoutOrganizationNestedInput
    receivedMessages?: MessageUncheckedUpdateManyWithoutReceiverOrganizationNestedInput
    sentMessages?: MessageUncheckedUpdateManyWithoutSenderOrganizationNestedInput
    products?: ProductUncheckedUpdateManyWithoutOrganizationNestedInput
    services?: ServiceUncheckedUpdateManyWithoutOrganizationNestedInput
    supplies?: SupplyUncheckedUpdateManyWithoutOrganizationNestedInput
    users?: UserUncheckedUpdateManyWithoutOrganizationNestedInput
    logistics?: LogisticsUncheckedUpdateManyWithoutOrganizationNestedInput
    supplyOrders?: SupplyOrderUncheckedUpdateManyWithoutOrganizationNestedInput
    partnerSupplyOrders?: SupplyOrderUncheckedUpdateManyWithoutPartnerNestedInput
    fulfillmentSupplyOrders?: SupplyOrderUncheckedUpdateManyWithoutFulfillmentCenterNestedInput
    wildberriesSupplies?: WildberriesSupplyUncheckedUpdateManyWithoutOrganizationNestedInput
    supplySuppliers?: SupplySupplierUncheckedUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationCreateWithoutReceivedRequestsInput = {
    id?: string
    inn: string
    kpp?: string | null
    name?: string | null
    fullName?: string | null
    ogrn?: string | null
    ogrnDate?: Date | string | null
    type: $Enums.OrganizationType
    createdAt?: Date | string
    updatedAt?: Date | string
    address?: string | null
    addressFull?: string | null
    status?: string | null
    actualityDate?: Date | string | null
    registrationDate?: Date | string | null
    liquidationDate?: Date | string | null
    managementName?: string | null
    managementPost?: string | null
    opfCode?: string | null
    opfFull?: string | null
    opfShort?: string | null
    okato?: string | null
    oktmo?: string | null
    okpo?: string | null
    okved?: string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: number | null
    revenue?: bigint | number | null
    taxSystem?: string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyCreateNestedManyWithoutOrganizationInput
    carts?: CartCreateNestedOneWithoutOrganizationInput
    counterpartyOf?: CounterpartyCreateNestedManyWithoutCounterpartyInput
    organizationCounterparties?: CounterpartyCreateNestedManyWithoutOrganizationInput
    sentRequests?: CounterpartyRequestCreateNestedManyWithoutSenderInput
    employees?: EmployeeCreateNestedManyWithoutOrganizationInput
    favorites?: FavoritesCreateNestedManyWithoutOrganizationInput
    receivedMessages?: MessageCreateNestedManyWithoutReceiverOrganizationInput
    sentMessages?: MessageCreateNestedManyWithoutSenderOrganizationInput
    products?: ProductCreateNestedManyWithoutOrganizationInput
    services?: ServiceCreateNestedManyWithoutOrganizationInput
    supplies?: SupplyCreateNestedManyWithoutOrganizationInput
    users?: UserCreateNestedManyWithoutOrganizationInput
    logistics?: LogisticsCreateNestedManyWithoutOrganizationInput
    supplyOrders?: SupplyOrderCreateNestedManyWithoutOrganizationInput
    partnerSupplyOrders?: SupplyOrderCreateNestedManyWithoutPartnerInput
    fulfillmentSupplyOrders?: SupplyOrderCreateNestedManyWithoutFulfillmentCenterInput
    wildberriesSupplies?: WildberriesSupplyCreateNestedManyWithoutOrganizationInput
    supplySuppliers?: SupplySupplierCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationUncheckedCreateWithoutReceivedRequestsInput = {
    id?: string
    inn: string
    kpp?: string | null
    name?: string | null
    fullName?: string | null
    ogrn?: string | null
    ogrnDate?: Date | string | null
    type: $Enums.OrganizationType
    createdAt?: Date | string
    updatedAt?: Date | string
    address?: string | null
    addressFull?: string | null
    status?: string | null
    actualityDate?: Date | string | null
    registrationDate?: Date | string | null
    liquidationDate?: Date | string | null
    managementName?: string | null
    managementPost?: string | null
    opfCode?: string | null
    opfFull?: string | null
    opfShort?: string | null
    okato?: string | null
    oktmo?: string | null
    okpo?: string | null
    okved?: string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: number | null
    revenue?: bigint | number | null
    taxSystem?: string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUncheckedCreateNestedManyWithoutOrganizationInput
    carts?: CartUncheckedCreateNestedOneWithoutOrganizationInput
    counterpartyOf?: CounterpartyUncheckedCreateNestedManyWithoutCounterpartyInput
    organizationCounterparties?: CounterpartyUncheckedCreateNestedManyWithoutOrganizationInput
    sentRequests?: CounterpartyRequestUncheckedCreateNestedManyWithoutSenderInput
    employees?: EmployeeUncheckedCreateNestedManyWithoutOrganizationInput
    favorites?: FavoritesUncheckedCreateNestedManyWithoutOrganizationInput
    receivedMessages?: MessageUncheckedCreateNestedManyWithoutReceiverOrganizationInput
    sentMessages?: MessageUncheckedCreateNestedManyWithoutSenderOrganizationInput
    products?: ProductUncheckedCreateNestedManyWithoutOrganizationInput
    services?: ServiceUncheckedCreateNestedManyWithoutOrganizationInput
    supplies?: SupplyUncheckedCreateNestedManyWithoutOrganizationInput
    users?: UserUncheckedCreateNestedManyWithoutOrganizationInput
    logistics?: LogisticsUncheckedCreateNestedManyWithoutOrganizationInput
    supplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutOrganizationInput
    partnerSupplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutPartnerInput
    fulfillmentSupplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutFulfillmentCenterInput
    wildberriesSupplies?: WildberriesSupplyUncheckedCreateNestedManyWithoutOrganizationInput
    supplySuppliers?: SupplySupplierUncheckedCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationCreateOrConnectWithoutReceivedRequestsInput = {
    where: OrganizationWhereUniqueInput
    create: XOR<OrganizationCreateWithoutReceivedRequestsInput, OrganizationUncheckedCreateWithoutReceivedRequestsInput>
  }

  export type OrganizationCreateWithoutSentRequestsInput = {
    id?: string
    inn: string
    kpp?: string | null
    name?: string | null
    fullName?: string | null
    ogrn?: string | null
    ogrnDate?: Date | string | null
    type: $Enums.OrganizationType
    createdAt?: Date | string
    updatedAt?: Date | string
    address?: string | null
    addressFull?: string | null
    status?: string | null
    actualityDate?: Date | string | null
    registrationDate?: Date | string | null
    liquidationDate?: Date | string | null
    managementName?: string | null
    managementPost?: string | null
    opfCode?: string | null
    opfFull?: string | null
    opfShort?: string | null
    okato?: string | null
    oktmo?: string | null
    okpo?: string | null
    okved?: string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: number | null
    revenue?: bigint | number | null
    taxSystem?: string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyCreateNestedManyWithoutOrganizationInput
    carts?: CartCreateNestedOneWithoutOrganizationInput
    counterpartyOf?: CounterpartyCreateNestedManyWithoutCounterpartyInput
    organizationCounterparties?: CounterpartyCreateNestedManyWithoutOrganizationInput
    receivedRequests?: CounterpartyRequestCreateNestedManyWithoutReceiverInput
    employees?: EmployeeCreateNestedManyWithoutOrganizationInput
    favorites?: FavoritesCreateNestedManyWithoutOrganizationInput
    receivedMessages?: MessageCreateNestedManyWithoutReceiverOrganizationInput
    sentMessages?: MessageCreateNestedManyWithoutSenderOrganizationInput
    products?: ProductCreateNestedManyWithoutOrganizationInput
    services?: ServiceCreateNestedManyWithoutOrganizationInput
    supplies?: SupplyCreateNestedManyWithoutOrganizationInput
    users?: UserCreateNestedManyWithoutOrganizationInput
    logistics?: LogisticsCreateNestedManyWithoutOrganizationInput
    supplyOrders?: SupplyOrderCreateNestedManyWithoutOrganizationInput
    partnerSupplyOrders?: SupplyOrderCreateNestedManyWithoutPartnerInput
    fulfillmentSupplyOrders?: SupplyOrderCreateNestedManyWithoutFulfillmentCenterInput
    wildberriesSupplies?: WildberriesSupplyCreateNestedManyWithoutOrganizationInput
    supplySuppliers?: SupplySupplierCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationUncheckedCreateWithoutSentRequestsInput = {
    id?: string
    inn: string
    kpp?: string | null
    name?: string | null
    fullName?: string | null
    ogrn?: string | null
    ogrnDate?: Date | string | null
    type: $Enums.OrganizationType
    createdAt?: Date | string
    updatedAt?: Date | string
    address?: string | null
    addressFull?: string | null
    status?: string | null
    actualityDate?: Date | string | null
    registrationDate?: Date | string | null
    liquidationDate?: Date | string | null
    managementName?: string | null
    managementPost?: string | null
    opfCode?: string | null
    opfFull?: string | null
    opfShort?: string | null
    okato?: string | null
    oktmo?: string | null
    okpo?: string | null
    okved?: string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: number | null
    revenue?: bigint | number | null
    taxSystem?: string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUncheckedCreateNestedManyWithoutOrganizationInput
    carts?: CartUncheckedCreateNestedOneWithoutOrganizationInput
    counterpartyOf?: CounterpartyUncheckedCreateNestedManyWithoutCounterpartyInput
    organizationCounterparties?: CounterpartyUncheckedCreateNestedManyWithoutOrganizationInput
    receivedRequests?: CounterpartyRequestUncheckedCreateNestedManyWithoutReceiverInput
    employees?: EmployeeUncheckedCreateNestedManyWithoutOrganizationInput
    favorites?: FavoritesUncheckedCreateNestedManyWithoutOrganizationInput
    receivedMessages?: MessageUncheckedCreateNestedManyWithoutReceiverOrganizationInput
    sentMessages?: MessageUncheckedCreateNestedManyWithoutSenderOrganizationInput
    products?: ProductUncheckedCreateNestedManyWithoutOrganizationInput
    services?: ServiceUncheckedCreateNestedManyWithoutOrganizationInput
    supplies?: SupplyUncheckedCreateNestedManyWithoutOrganizationInput
    users?: UserUncheckedCreateNestedManyWithoutOrganizationInput
    logistics?: LogisticsUncheckedCreateNestedManyWithoutOrganizationInput
    supplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutOrganizationInput
    partnerSupplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutPartnerInput
    fulfillmentSupplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutFulfillmentCenterInput
    wildberriesSupplies?: WildberriesSupplyUncheckedCreateNestedManyWithoutOrganizationInput
    supplySuppliers?: SupplySupplierUncheckedCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationCreateOrConnectWithoutSentRequestsInput = {
    where: OrganizationWhereUniqueInput
    create: XOR<OrganizationCreateWithoutSentRequestsInput, OrganizationUncheckedCreateWithoutSentRequestsInput>
  }

  export type OrganizationUpsertWithoutReceivedRequestsInput = {
    update: XOR<OrganizationUpdateWithoutReceivedRequestsInput, OrganizationUncheckedUpdateWithoutReceivedRequestsInput>
    create: XOR<OrganizationCreateWithoutReceivedRequestsInput, OrganizationUncheckedCreateWithoutReceivedRequestsInput>
    where?: OrganizationWhereInput
  }

  export type OrganizationUpdateToOneWithWhereWithoutReceivedRequestsInput = {
    where?: OrganizationWhereInput
    data: XOR<OrganizationUpdateWithoutReceivedRequestsInput, OrganizationUncheckedUpdateWithoutReceivedRequestsInput>
  }

  export type OrganizationUpdateWithoutReceivedRequestsInput = {
    id?: StringFieldUpdateOperationsInput | string
    inn?: StringFieldUpdateOperationsInput | string
    kpp?: NullableStringFieldUpdateOperationsInput | string | null
    name?: NullableStringFieldUpdateOperationsInput | string | null
    fullName?: NullableStringFieldUpdateOperationsInput | string | null
    ogrn?: NullableStringFieldUpdateOperationsInput | string | null
    ogrnDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    type?: EnumOrganizationTypeFieldUpdateOperationsInput | $Enums.OrganizationType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    address?: NullableStringFieldUpdateOperationsInput | string | null
    addressFull?: NullableStringFieldUpdateOperationsInput | string | null
    status?: NullableStringFieldUpdateOperationsInput | string | null
    actualityDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    registrationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    liquidationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managementName?: NullableStringFieldUpdateOperationsInput | string | null
    managementPost?: NullableStringFieldUpdateOperationsInput | string | null
    opfCode?: NullableStringFieldUpdateOperationsInput | string | null
    opfFull?: NullableStringFieldUpdateOperationsInput | string | null
    opfShort?: NullableStringFieldUpdateOperationsInput | string | null
    okato?: NullableStringFieldUpdateOperationsInput | string | null
    oktmo?: NullableStringFieldUpdateOperationsInput | string | null
    okpo?: NullableStringFieldUpdateOperationsInput | string | null
    okved?: NullableStringFieldUpdateOperationsInput | string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: NullableIntFieldUpdateOperationsInput | number | null
    revenue?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    taxSystem?: NullableStringFieldUpdateOperationsInput | string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUpdateManyWithoutOrganizationNestedInput
    carts?: CartUpdateOneWithoutOrganizationNestedInput
    counterpartyOf?: CounterpartyUpdateManyWithoutCounterpartyNestedInput
    organizationCounterparties?: CounterpartyUpdateManyWithoutOrganizationNestedInput
    sentRequests?: CounterpartyRequestUpdateManyWithoutSenderNestedInput
    employees?: EmployeeUpdateManyWithoutOrganizationNestedInput
    favorites?: FavoritesUpdateManyWithoutOrganizationNestedInput
    receivedMessages?: MessageUpdateManyWithoutReceiverOrganizationNestedInput
    sentMessages?: MessageUpdateManyWithoutSenderOrganizationNestedInput
    products?: ProductUpdateManyWithoutOrganizationNestedInput
    services?: ServiceUpdateManyWithoutOrganizationNestedInput
    supplies?: SupplyUpdateManyWithoutOrganizationNestedInput
    users?: UserUpdateManyWithoutOrganizationNestedInput
    logistics?: LogisticsUpdateManyWithoutOrganizationNestedInput
    supplyOrders?: SupplyOrderUpdateManyWithoutOrganizationNestedInput
    partnerSupplyOrders?: SupplyOrderUpdateManyWithoutPartnerNestedInput
    fulfillmentSupplyOrders?: SupplyOrderUpdateManyWithoutFulfillmentCenterNestedInput
    wildberriesSupplies?: WildberriesSupplyUpdateManyWithoutOrganizationNestedInput
    supplySuppliers?: SupplySupplierUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationUncheckedUpdateWithoutReceivedRequestsInput = {
    id?: StringFieldUpdateOperationsInput | string
    inn?: StringFieldUpdateOperationsInput | string
    kpp?: NullableStringFieldUpdateOperationsInput | string | null
    name?: NullableStringFieldUpdateOperationsInput | string | null
    fullName?: NullableStringFieldUpdateOperationsInput | string | null
    ogrn?: NullableStringFieldUpdateOperationsInput | string | null
    ogrnDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    type?: EnumOrganizationTypeFieldUpdateOperationsInput | $Enums.OrganizationType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    address?: NullableStringFieldUpdateOperationsInput | string | null
    addressFull?: NullableStringFieldUpdateOperationsInput | string | null
    status?: NullableStringFieldUpdateOperationsInput | string | null
    actualityDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    registrationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    liquidationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managementName?: NullableStringFieldUpdateOperationsInput | string | null
    managementPost?: NullableStringFieldUpdateOperationsInput | string | null
    opfCode?: NullableStringFieldUpdateOperationsInput | string | null
    opfFull?: NullableStringFieldUpdateOperationsInput | string | null
    opfShort?: NullableStringFieldUpdateOperationsInput | string | null
    okato?: NullableStringFieldUpdateOperationsInput | string | null
    oktmo?: NullableStringFieldUpdateOperationsInput | string | null
    okpo?: NullableStringFieldUpdateOperationsInput | string | null
    okved?: NullableStringFieldUpdateOperationsInput | string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: NullableIntFieldUpdateOperationsInput | number | null
    revenue?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    taxSystem?: NullableStringFieldUpdateOperationsInput | string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUncheckedUpdateManyWithoutOrganizationNestedInput
    carts?: CartUncheckedUpdateOneWithoutOrganizationNestedInput
    counterpartyOf?: CounterpartyUncheckedUpdateManyWithoutCounterpartyNestedInput
    organizationCounterparties?: CounterpartyUncheckedUpdateManyWithoutOrganizationNestedInput
    sentRequests?: CounterpartyRequestUncheckedUpdateManyWithoutSenderNestedInput
    employees?: EmployeeUncheckedUpdateManyWithoutOrganizationNestedInput
    favorites?: FavoritesUncheckedUpdateManyWithoutOrganizationNestedInput
    receivedMessages?: MessageUncheckedUpdateManyWithoutReceiverOrganizationNestedInput
    sentMessages?: MessageUncheckedUpdateManyWithoutSenderOrganizationNestedInput
    products?: ProductUncheckedUpdateManyWithoutOrganizationNestedInput
    services?: ServiceUncheckedUpdateManyWithoutOrganizationNestedInput
    supplies?: SupplyUncheckedUpdateManyWithoutOrganizationNestedInput
    users?: UserUncheckedUpdateManyWithoutOrganizationNestedInput
    logistics?: LogisticsUncheckedUpdateManyWithoutOrganizationNestedInput
    supplyOrders?: SupplyOrderUncheckedUpdateManyWithoutOrganizationNestedInput
    partnerSupplyOrders?: SupplyOrderUncheckedUpdateManyWithoutPartnerNestedInput
    fulfillmentSupplyOrders?: SupplyOrderUncheckedUpdateManyWithoutFulfillmentCenterNestedInput
    wildberriesSupplies?: WildberriesSupplyUncheckedUpdateManyWithoutOrganizationNestedInput
    supplySuppliers?: SupplySupplierUncheckedUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationUpsertWithoutSentRequestsInput = {
    update: XOR<OrganizationUpdateWithoutSentRequestsInput, OrganizationUncheckedUpdateWithoutSentRequestsInput>
    create: XOR<OrganizationCreateWithoutSentRequestsInput, OrganizationUncheckedCreateWithoutSentRequestsInput>
    where?: OrganizationWhereInput
  }

  export type OrganizationUpdateToOneWithWhereWithoutSentRequestsInput = {
    where?: OrganizationWhereInput
    data: XOR<OrganizationUpdateWithoutSentRequestsInput, OrganizationUncheckedUpdateWithoutSentRequestsInput>
  }

  export type OrganizationUpdateWithoutSentRequestsInput = {
    id?: StringFieldUpdateOperationsInput | string
    inn?: StringFieldUpdateOperationsInput | string
    kpp?: NullableStringFieldUpdateOperationsInput | string | null
    name?: NullableStringFieldUpdateOperationsInput | string | null
    fullName?: NullableStringFieldUpdateOperationsInput | string | null
    ogrn?: NullableStringFieldUpdateOperationsInput | string | null
    ogrnDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    type?: EnumOrganizationTypeFieldUpdateOperationsInput | $Enums.OrganizationType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    address?: NullableStringFieldUpdateOperationsInput | string | null
    addressFull?: NullableStringFieldUpdateOperationsInput | string | null
    status?: NullableStringFieldUpdateOperationsInput | string | null
    actualityDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    registrationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    liquidationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managementName?: NullableStringFieldUpdateOperationsInput | string | null
    managementPost?: NullableStringFieldUpdateOperationsInput | string | null
    opfCode?: NullableStringFieldUpdateOperationsInput | string | null
    opfFull?: NullableStringFieldUpdateOperationsInput | string | null
    opfShort?: NullableStringFieldUpdateOperationsInput | string | null
    okato?: NullableStringFieldUpdateOperationsInput | string | null
    oktmo?: NullableStringFieldUpdateOperationsInput | string | null
    okpo?: NullableStringFieldUpdateOperationsInput | string | null
    okved?: NullableStringFieldUpdateOperationsInput | string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: NullableIntFieldUpdateOperationsInput | number | null
    revenue?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    taxSystem?: NullableStringFieldUpdateOperationsInput | string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUpdateManyWithoutOrganizationNestedInput
    carts?: CartUpdateOneWithoutOrganizationNestedInput
    counterpartyOf?: CounterpartyUpdateManyWithoutCounterpartyNestedInput
    organizationCounterparties?: CounterpartyUpdateManyWithoutOrganizationNestedInput
    receivedRequests?: CounterpartyRequestUpdateManyWithoutReceiverNestedInput
    employees?: EmployeeUpdateManyWithoutOrganizationNestedInput
    favorites?: FavoritesUpdateManyWithoutOrganizationNestedInput
    receivedMessages?: MessageUpdateManyWithoutReceiverOrganizationNestedInput
    sentMessages?: MessageUpdateManyWithoutSenderOrganizationNestedInput
    products?: ProductUpdateManyWithoutOrganizationNestedInput
    services?: ServiceUpdateManyWithoutOrganizationNestedInput
    supplies?: SupplyUpdateManyWithoutOrganizationNestedInput
    users?: UserUpdateManyWithoutOrganizationNestedInput
    logistics?: LogisticsUpdateManyWithoutOrganizationNestedInput
    supplyOrders?: SupplyOrderUpdateManyWithoutOrganizationNestedInput
    partnerSupplyOrders?: SupplyOrderUpdateManyWithoutPartnerNestedInput
    fulfillmentSupplyOrders?: SupplyOrderUpdateManyWithoutFulfillmentCenterNestedInput
    wildberriesSupplies?: WildberriesSupplyUpdateManyWithoutOrganizationNestedInput
    supplySuppliers?: SupplySupplierUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationUncheckedUpdateWithoutSentRequestsInput = {
    id?: StringFieldUpdateOperationsInput | string
    inn?: StringFieldUpdateOperationsInput | string
    kpp?: NullableStringFieldUpdateOperationsInput | string | null
    name?: NullableStringFieldUpdateOperationsInput | string | null
    fullName?: NullableStringFieldUpdateOperationsInput | string | null
    ogrn?: NullableStringFieldUpdateOperationsInput | string | null
    ogrnDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    type?: EnumOrganizationTypeFieldUpdateOperationsInput | $Enums.OrganizationType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    address?: NullableStringFieldUpdateOperationsInput | string | null
    addressFull?: NullableStringFieldUpdateOperationsInput | string | null
    status?: NullableStringFieldUpdateOperationsInput | string | null
    actualityDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    registrationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    liquidationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managementName?: NullableStringFieldUpdateOperationsInput | string | null
    managementPost?: NullableStringFieldUpdateOperationsInput | string | null
    opfCode?: NullableStringFieldUpdateOperationsInput | string | null
    opfFull?: NullableStringFieldUpdateOperationsInput | string | null
    opfShort?: NullableStringFieldUpdateOperationsInput | string | null
    okato?: NullableStringFieldUpdateOperationsInput | string | null
    oktmo?: NullableStringFieldUpdateOperationsInput | string | null
    okpo?: NullableStringFieldUpdateOperationsInput | string | null
    okved?: NullableStringFieldUpdateOperationsInput | string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: NullableIntFieldUpdateOperationsInput | number | null
    revenue?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    taxSystem?: NullableStringFieldUpdateOperationsInput | string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUncheckedUpdateManyWithoutOrganizationNestedInput
    carts?: CartUncheckedUpdateOneWithoutOrganizationNestedInput
    counterpartyOf?: CounterpartyUncheckedUpdateManyWithoutCounterpartyNestedInput
    organizationCounterparties?: CounterpartyUncheckedUpdateManyWithoutOrganizationNestedInput
    receivedRequests?: CounterpartyRequestUncheckedUpdateManyWithoutReceiverNestedInput
    employees?: EmployeeUncheckedUpdateManyWithoutOrganizationNestedInput
    favorites?: FavoritesUncheckedUpdateManyWithoutOrganizationNestedInput
    receivedMessages?: MessageUncheckedUpdateManyWithoutReceiverOrganizationNestedInput
    sentMessages?: MessageUncheckedUpdateManyWithoutSenderOrganizationNestedInput
    products?: ProductUncheckedUpdateManyWithoutOrganizationNestedInput
    services?: ServiceUncheckedUpdateManyWithoutOrganizationNestedInput
    supplies?: SupplyUncheckedUpdateManyWithoutOrganizationNestedInput
    users?: UserUncheckedUpdateManyWithoutOrganizationNestedInput
    logistics?: LogisticsUncheckedUpdateManyWithoutOrganizationNestedInput
    supplyOrders?: SupplyOrderUncheckedUpdateManyWithoutOrganizationNestedInput
    partnerSupplyOrders?: SupplyOrderUncheckedUpdateManyWithoutPartnerNestedInput
    fulfillmentSupplyOrders?: SupplyOrderUncheckedUpdateManyWithoutFulfillmentCenterNestedInput
    wildberriesSupplies?: WildberriesSupplyUncheckedUpdateManyWithoutOrganizationNestedInput
    supplySuppliers?: SupplySupplierUncheckedUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationCreateWithoutCounterpartyOfInput = {
    id?: string
    inn: string
    kpp?: string | null
    name?: string | null
    fullName?: string | null
    ogrn?: string | null
    ogrnDate?: Date | string | null
    type: $Enums.OrganizationType
    createdAt?: Date | string
    updatedAt?: Date | string
    address?: string | null
    addressFull?: string | null
    status?: string | null
    actualityDate?: Date | string | null
    registrationDate?: Date | string | null
    liquidationDate?: Date | string | null
    managementName?: string | null
    managementPost?: string | null
    opfCode?: string | null
    opfFull?: string | null
    opfShort?: string | null
    okato?: string | null
    oktmo?: string | null
    okpo?: string | null
    okved?: string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: number | null
    revenue?: bigint | number | null
    taxSystem?: string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyCreateNestedManyWithoutOrganizationInput
    carts?: CartCreateNestedOneWithoutOrganizationInput
    organizationCounterparties?: CounterpartyCreateNestedManyWithoutOrganizationInput
    receivedRequests?: CounterpartyRequestCreateNestedManyWithoutReceiverInput
    sentRequests?: CounterpartyRequestCreateNestedManyWithoutSenderInput
    employees?: EmployeeCreateNestedManyWithoutOrganizationInput
    favorites?: FavoritesCreateNestedManyWithoutOrganizationInput
    receivedMessages?: MessageCreateNestedManyWithoutReceiverOrganizationInput
    sentMessages?: MessageCreateNestedManyWithoutSenderOrganizationInput
    products?: ProductCreateNestedManyWithoutOrganizationInput
    services?: ServiceCreateNestedManyWithoutOrganizationInput
    supplies?: SupplyCreateNestedManyWithoutOrganizationInput
    users?: UserCreateNestedManyWithoutOrganizationInput
    logistics?: LogisticsCreateNestedManyWithoutOrganizationInput
    supplyOrders?: SupplyOrderCreateNestedManyWithoutOrganizationInput
    partnerSupplyOrders?: SupplyOrderCreateNestedManyWithoutPartnerInput
    fulfillmentSupplyOrders?: SupplyOrderCreateNestedManyWithoutFulfillmentCenterInput
    wildberriesSupplies?: WildberriesSupplyCreateNestedManyWithoutOrganizationInput
    supplySuppliers?: SupplySupplierCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationUncheckedCreateWithoutCounterpartyOfInput = {
    id?: string
    inn: string
    kpp?: string | null
    name?: string | null
    fullName?: string | null
    ogrn?: string | null
    ogrnDate?: Date | string | null
    type: $Enums.OrganizationType
    createdAt?: Date | string
    updatedAt?: Date | string
    address?: string | null
    addressFull?: string | null
    status?: string | null
    actualityDate?: Date | string | null
    registrationDate?: Date | string | null
    liquidationDate?: Date | string | null
    managementName?: string | null
    managementPost?: string | null
    opfCode?: string | null
    opfFull?: string | null
    opfShort?: string | null
    okato?: string | null
    oktmo?: string | null
    okpo?: string | null
    okved?: string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: number | null
    revenue?: bigint | number | null
    taxSystem?: string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUncheckedCreateNestedManyWithoutOrganizationInput
    carts?: CartUncheckedCreateNestedOneWithoutOrganizationInput
    organizationCounterparties?: CounterpartyUncheckedCreateNestedManyWithoutOrganizationInput
    receivedRequests?: CounterpartyRequestUncheckedCreateNestedManyWithoutReceiverInput
    sentRequests?: CounterpartyRequestUncheckedCreateNestedManyWithoutSenderInput
    employees?: EmployeeUncheckedCreateNestedManyWithoutOrganizationInput
    favorites?: FavoritesUncheckedCreateNestedManyWithoutOrganizationInput
    receivedMessages?: MessageUncheckedCreateNestedManyWithoutReceiverOrganizationInput
    sentMessages?: MessageUncheckedCreateNestedManyWithoutSenderOrganizationInput
    products?: ProductUncheckedCreateNestedManyWithoutOrganizationInput
    services?: ServiceUncheckedCreateNestedManyWithoutOrganizationInput
    supplies?: SupplyUncheckedCreateNestedManyWithoutOrganizationInput
    users?: UserUncheckedCreateNestedManyWithoutOrganizationInput
    logistics?: LogisticsUncheckedCreateNestedManyWithoutOrganizationInput
    supplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutOrganizationInput
    partnerSupplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutPartnerInput
    fulfillmentSupplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutFulfillmentCenterInput
    wildberriesSupplies?: WildberriesSupplyUncheckedCreateNestedManyWithoutOrganizationInput
    supplySuppliers?: SupplySupplierUncheckedCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationCreateOrConnectWithoutCounterpartyOfInput = {
    where: OrganizationWhereUniqueInput
    create: XOR<OrganizationCreateWithoutCounterpartyOfInput, OrganizationUncheckedCreateWithoutCounterpartyOfInput>
  }

  export type OrganizationCreateWithoutOrganizationCounterpartiesInput = {
    id?: string
    inn: string
    kpp?: string | null
    name?: string | null
    fullName?: string | null
    ogrn?: string | null
    ogrnDate?: Date | string | null
    type: $Enums.OrganizationType
    createdAt?: Date | string
    updatedAt?: Date | string
    address?: string | null
    addressFull?: string | null
    status?: string | null
    actualityDate?: Date | string | null
    registrationDate?: Date | string | null
    liquidationDate?: Date | string | null
    managementName?: string | null
    managementPost?: string | null
    opfCode?: string | null
    opfFull?: string | null
    opfShort?: string | null
    okato?: string | null
    oktmo?: string | null
    okpo?: string | null
    okved?: string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: number | null
    revenue?: bigint | number | null
    taxSystem?: string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyCreateNestedManyWithoutOrganizationInput
    carts?: CartCreateNestedOneWithoutOrganizationInput
    counterpartyOf?: CounterpartyCreateNestedManyWithoutCounterpartyInput
    receivedRequests?: CounterpartyRequestCreateNestedManyWithoutReceiverInput
    sentRequests?: CounterpartyRequestCreateNestedManyWithoutSenderInput
    employees?: EmployeeCreateNestedManyWithoutOrganizationInput
    favorites?: FavoritesCreateNestedManyWithoutOrganizationInput
    receivedMessages?: MessageCreateNestedManyWithoutReceiverOrganizationInput
    sentMessages?: MessageCreateNestedManyWithoutSenderOrganizationInput
    products?: ProductCreateNestedManyWithoutOrganizationInput
    services?: ServiceCreateNestedManyWithoutOrganizationInput
    supplies?: SupplyCreateNestedManyWithoutOrganizationInput
    users?: UserCreateNestedManyWithoutOrganizationInput
    logistics?: LogisticsCreateNestedManyWithoutOrganizationInput
    supplyOrders?: SupplyOrderCreateNestedManyWithoutOrganizationInput
    partnerSupplyOrders?: SupplyOrderCreateNestedManyWithoutPartnerInput
    fulfillmentSupplyOrders?: SupplyOrderCreateNestedManyWithoutFulfillmentCenterInput
    wildberriesSupplies?: WildberriesSupplyCreateNestedManyWithoutOrganizationInput
    supplySuppliers?: SupplySupplierCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationUncheckedCreateWithoutOrganizationCounterpartiesInput = {
    id?: string
    inn: string
    kpp?: string | null
    name?: string | null
    fullName?: string | null
    ogrn?: string | null
    ogrnDate?: Date | string | null
    type: $Enums.OrganizationType
    createdAt?: Date | string
    updatedAt?: Date | string
    address?: string | null
    addressFull?: string | null
    status?: string | null
    actualityDate?: Date | string | null
    registrationDate?: Date | string | null
    liquidationDate?: Date | string | null
    managementName?: string | null
    managementPost?: string | null
    opfCode?: string | null
    opfFull?: string | null
    opfShort?: string | null
    okato?: string | null
    oktmo?: string | null
    okpo?: string | null
    okved?: string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: number | null
    revenue?: bigint | number | null
    taxSystem?: string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUncheckedCreateNestedManyWithoutOrganizationInput
    carts?: CartUncheckedCreateNestedOneWithoutOrganizationInput
    counterpartyOf?: CounterpartyUncheckedCreateNestedManyWithoutCounterpartyInput
    receivedRequests?: CounterpartyRequestUncheckedCreateNestedManyWithoutReceiverInput
    sentRequests?: CounterpartyRequestUncheckedCreateNestedManyWithoutSenderInput
    employees?: EmployeeUncheckedCreateNestedManyWithoutOrganizationInput
    favorites?: FavoritesUncheckedCreateNestedManyWithoutOrganizationInput
    receivedMessages?: MessageUncheckedCreateNestedManyWithoutReceiverOrganizationInput
    sentMessages?: MessageUncheckedCreateNestedManyWithoutSenderOrganizationInput
    products?: ProductUncheckedCreateNestedManyWithoutOrganizationInput
    services?: ServiceUncheckedCreateNestedManyWithoutOrganizationInput
    supplies?: SupplyUncheckedCreateNestedManyWithoutOrganizationInput
    users?: UserUncheckedCreateNestedManyWithoutOrganizationInput
    logistics?: LogisticsUncheckedCreateNestedManyWithoutOrganizationInput
    supplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutOrganizationInput
    partnerSupplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutPartnerInput
    fulfillmentSupplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutFulfillmentCenterInput
    wildberriesSupplies?: WildberriesSupplyUncheckedCreateNestedManyWithoutOrganizationInput
    supplySuppliers?: SupplySupplierUncheckedCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationCreateOrConnectWithoutOrganizationCounterpartiesInput = {
    where: OrganizationWhereUniqueInput
    create: XOR<OrganizationCreateWithoutOrganizationCounterpartiesInput, OrganizationUncheckedCreateWithoutOrganizationCounterpartiesInput>
  }

  export type OrganizationUpsertWithoutCounterpartyOfInput = {
    update: XOR<OrganizationUpdateWithoutCounterpartyOfInput, OrganizationUncheckedUpdateWithoutCounterpartyOfInput>
    create: XOR<OrganizationCreateWithoutCounterpartyOfInput, OrganizationUncheckedCreateWithoutCounterpartyOfInput>
    where?: OrganizationWhereInput
  }

  export type OrganizationUpdateToOneWithWhereWithoutCounterpartyOfInput = {
    where?: OrganizationWhereInput
    data: XOR<OrganizationUpdateWithoutCounterpartyOfInput, OrganizationUncheckedUpdateWithoutCounterpartyOfInput>
  }

  export type OrganizationUpdateWithoutCounterpartyOfInput = {
    id?: StringFieldUpdateOperationsInput | string
    inn?: StringFieldUpdateOperationsInput | string
    kpp?: NullableStringFieldUpdateOperationsInput | string | null
    name?: NullableStringFieldUpdateOperationsInput | string | null
    fullName?: NullableStringFieldUpdateOperationsInput | string | null
    ogrn?: NullableStringFieldUpdateOperationsInput | string | null
    ogrnDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    type?: EnumOrganizationTypeFieldUpdateOperationsInput | $Enums.OrganizationType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    address?: NullableStringFieldUpdateOperationsInput | string | null
    addressFull?: NullableStringFieldUpdateOperationsInput | string | null
    status?: NullableStringFieldUpdateOperationsInput | string | null
    actualityDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    registrationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    liquidationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managementName?: NullableStringFieldUpdateOperationsInput | string | null
    managementPost?: NullableStringFieldUpdateOperationsInput | string | null
    opfCode?: NullableStringFieldUpdateOperationsInput | string | null
    opfFull?: NullableStringFieldUpdateOperationsInput | string | null
    opfShort?: NullableStringFieldUpdateOperationsInput | string | null
    okato?: NullableStringFieldUpdateOperationsInput | string | null
    oktmo?: NullableStringFieldUpdateOperationsInput | string | null
    okpo?: NullableStringFieldUpdateOperationsInput | string | null
    okved?: NullableStringFieldUpdateOperationsInput | string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: NullableIntFieldUpdateOperationsInput | number | null
    revenue?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    taxSystem?: NullableStringFieldUpdateOperationsInput | string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUpdateManyWithoutOrganizationNestedInput
    carts?: CartUpdateOneWithoutOrganizationNestedInput
    organizationCounterparties?: CounterpartyUpdateManyWithoutOrganizationNestedInput
    receivedRequests?: CounterpartyRequestUpdateManyWithoutReceiverNestedInput
    sentRequests?: CounterpartyRequestUpdateManyWithoutSenderNestedInput
    employees?: EmployeeUpdateManyWithoutOrganizationNestedInput
    favorites?: FavoritesUpdateManyWithoutOrganizationNestedInput
    receivedMessages?: MessageUpdateManyWithoutReceiverOrganizationNestedInput
    sentMessages?: MessageUpdateManyWithoutSenderOrganizationNestedInput
    products?: ProductUpdateManyWithoutOrganizationNestedInput
    services?: ServiceUpdateManyWithoutOrganizationNestedInput
    supplies?: SupplyUpdateManyWithoutOrganizationNestedInput
    users?: UserUpdateManyWithoutOrganizationNestedInput
    logistics?: LogisticsUpdateManyWithoutOrganizationNestedInput
    supplyOrders?: SupplyOrderUpdateManyWithoutOrganizationNestedInput
    partnerSupplyOrders?: SupplyOrderUpdateManyWithoutPartnerNestedInput
    fulfillmentSupplyOrders?: SupplyOrderUpdateManyWithoutFulfillmentCenterNestedInput
    wildberriesSupplies?: WildberriesSupplyUpdateManyWithoutOrganizationNestedInput
    supplySuppliers?: SupplySupplierUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationUncheckedUpdateWithoutCounterpartyOfInput = {
    id?: StringFieldUpdateOperationsInput | string
    inn?: StringFieldUpdateOperationsInput | string
    kpp?: NullableStringFieldUpdateOperationsInput | string | null
    name?: NullableStringFieldUpdateOperationsInput | string | null
    fullName?: NullableStringFieldUpdateOperationsInput | string | null
    ogrn?: NullableStringFieldUpdateOperationsInput | string | null
    ogrnDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    type?: EnumOrganizationTypeFieldUpdateOperationsInput | $Enums.OrganizationType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    address?: NullableStringFieldUpdateOperationsInput | string | null
    addressFull?: NullableStringFieldUpdateOperationsInput | string | null
    status?: NullableStringFieldUpdateOperationsInput | string | null
    actualityDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    registrationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    liquidationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managementName?: NullableStringFieldUpdateOperationsInput | string | null
    managementPost?: NullableStringFieldUpdateOperationsInput | string | null
    opfCode?: NullableStringFieldUpdateOperationsInput | string | null
    opfFull?: NullableStringFieldUpdateOperationsInput | string | null
    opfShort?: NullableStringFieldUpdateOperationsInput | string | null
    okato?: NullableStringFieldUpdateOperationsInput | string | null
    oktmo?: NullableStringFieldUpdateOperationsInput | string | null
    okpo?: NullableStringFieldUpdateOperationsInput | string | null
    okved?: NullableStringFieldUpdateOperationsInput | string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: NullableIntFieldUpdateOperationsInput | number | null
    revenue?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    taxSystem?: NullableStringFieldUpdateOperationsInput | string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUncheckedUpdateManyWithoutOrganizationNestedInput
    carts?: CartUncheckedUpdateOneWithoutOrganizationNestedInput
    organizationCounterparties?: CounterpartyUncheckedUpdateManyWithoutOrganizationNestedInput
    receivedRequests?: CounterpartyRequestUncheckedUpdateManyWithoutReceiverNestedInput
    sentRequests?: CounterpartyRequestUncheckedUpdateManyWithoutSenderNestedInput
    employees?: EmployeeUncheckedUpdateManyWithoutOrganizationNestedInput
    favorites?: FavoritesUncheckedUpdateManyWithoutOrganizationNestedInput
    receivedMessages?: MessageUncheckedUpdateManyWithoutReceiverOrganizationNestedInput
    sentMessages?: MessageUncheckedUpdateManyWithoutSenderOrganizationNestedInput
    products?: ProductUncheckedUpdateManyWithoutOrganizationNestedInput
    services?: ServiceUncheckedUpdateManyWithoutOrganizationNestedInput
    supplies?: SupplyUncheckedUpdateManyWithoutOrganizationNestedInput
    users?: UserUncheckedUpdateManyWithoutOrganizationNestedInput
    logistics?: LogisticsUncheckedUpdateManyWithoutOrganizationNestedInput
    supplyOrders?: SupplyOrderUncheckedUpdateManyWithoutOrganizationNestedInput
    partnerSupplyOrders?: SupplyOrderUncheckedUpdateManyWithoutPartnerNestedInput
    fulfillmentSupplyOrders?: SupplyOrderUncheckedUpdateManyWithoutFulfillmentCenterNestedInput
    wildberriesSupplies?: WildberriesSupplyUncheckedUpdateManyWithoutOrganizationNestedInput
    supplySuppliers?: SupplySupplierUncheckedUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationUpsertWithoutOrganizationCounterpartiesInput = {
    update: XOR<OrganizationUpdateWithoutOrganizationCounterpartiesInput, OrganizationUncheckedUpdateWithoutOrganizationCounterpartiesInput>
    create: XOR<OrganizationCreateWithoutOrganizationCounterpartiesInput, OrganizationUncheckedCreateWithoutOrganizationCounterpartiesInput>
    where?: OrganizationWhereInput
  }

  export type OrganizationUpdateToOneWithWhereWithoutOrganizationCounterpartiesInput = {
    where?: OrganizationWhereInput
    data: XOR<OrganizationUpdateWithoutOrganizationCounterpartiesInput, OrganizationUncheckedUpdateWithoutOrganizationCounterpartiesInput>
  }

  export type OrganizationUpdateWithoutOrganizationCounterpartiesInput = {
    id?: StringFieldUpdateOperationsInput | string
    inn?: StringFieldUpdateOperationsInput | string
    kpp?: NullableStringFieldUpdateOperationsInput | string | null
    name?: NullableStringFieldUpdateOperationsInput | string | null
    fullName?: NullableStringFieldUpdateOperationsInput | string | null
    ogrn?: NullableStringFieldUpdateOperationsInput | string | null
    ogrnDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    type?: EnumOrganizationTypeFieldUpdateOperationsInput | $Enums.OrganizationType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    address?: NullableStringFieldUpdateOperationsInput | string | null
    addressFull?: NullableStringFieldUpdateOperationsInput | string | null
    status?: NullableStringFieldUpdateOperationsInput | string | null
    actualityDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    registrationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    liquidationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managementName?: NullableStringFieldUpdateOperationsInput | string | null
    managementPost?: NullableStringFieldUpdateOperationsInput | string | null
    opfCode?: NullableStringFieldUpdateOperationsInput | string | null
    opfFull?: NullableStringFieldUpdateOperationsInput | string | null
    opfShort?: NullableStringFieldUpdateOperationsInput | string | null
    okato?: NullableStringFieldUpdateOperationsInput | string | null
    oktmo?: NullableStringFieldUpdateOperationsInput | string | null
    okpo?: NullableStringFieldUpdateOperationsInput | string | null
    okved?: NullableStringFieldUpdateOperationsInput | string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: NullableIntFieldUpdateOperationsInput | number | null
    revenue?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    taxSystem?: NullableStringFieldUpdateOperationsInput | string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUpdateManyWithoutOrganizationNestedInput
    carts?: CartUpdateOneWithoutOrganizationNestedInput
    counterpartyOf?: CounterpartyUpdateManyWithoutCounterpartyNestedInput
    receivedRequests?: CounterpartyRequestUpdateManyWithoutReceiverNestedInput
    sentRequests?: CounterpartyRequestUpdateManyWithoutSenderNestedInput
    employees?: EmployeeUpdateManyWithoutOrganizationNestedInput
    favorites?: FavoritesUpdateManyWithoutOrganizationNestedInput
    receivedMessages?: MessageUpdateManyWithoutReceiverOrganizationNestedInput
    sentMessages?: MessageUpdateManyWithoutSenderOrganizationNestedInput
    products?: ProductUpdateManyWithoutOrganizationNestedInput
    services?: ServiceUpdateManyWithoutOrganizationNestedInput
    supplies?: SupplyUpdateManyWithoutOrganizationNestedInput
    users?: UserUpdateManyWithoutOrganizationNestedInput
    logistics?: LogisticsUpdateManyWithoutOrganizationNestedInput
    supplyOrders?: SupplyOrderUpdateManyWithoutOrganizationNestedInput
    partnerSupplyOrders?: SupplyOrderUpdateManyWithoutPartnerNestedInput
    fulfillmentSupplyOrders?: SupplyOrderUpdateManyWithoutFulfillmentCenterNestedInput
    wildberriesSupplies?: WildberriesSupplyUpdateManyWithoutOrganizationNestedInput
    supplySuppliers?: SupplySupplierUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationUncheckedUpdateWithoutOrganizationCounterpartiesInput = {
    id?: StringFieldUpdateOperationsInput | string
    inn?: StringFieldUpdateOperationsInput | string
    kpp?: NullableStringFieldUpdateOperationsInput | string | null
    name?: NullableStringFieldUpdateOperationsInput | string | null
    fullName?: NullableStringFieldUpdateOperationsInput | string | null
    ogrn?: NullableStringFieldUpdateOperationsInput | string | null
    ogrnDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    type?: EnumOrganizationTypeFieldUpdateOperationsInput | $Enums.OrganizationType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    address?: NullableStringFieldUpdateOperationsInput | string | null
    addressFull?: NullableStringFieldUpdateOperationsInput | string | null
    status?: NullableStringFieldUpdateOperationsInput | string | null
    actualityDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    registrationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    liquidationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managementName?: NullableStringFieldUpdateOperationsInput | string | null
    managementPost?: NullableStringFieldUpdateOperationsInput | string | null
    opfCode?: NullableStringFieldUpdateOperationsInput | string | null
    opfFull?: NullableStringFieldUpdateOperationsInput | string | null
    opfShort?: NullableStringFieldUpdateOperationsInput | string | null
    okato?: NullableStringFieldUpdateOperationsInput | string | null
    oktmo?: NullableStringFieldUpdateOperationsInput | string | null
    okpo?: NullableStringFieldUpdateOperationsInput | string | null
    okved?: NullableStringFieldUpdateOperationsInput | string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: NullableIntFieldUpdateOperationsInput | number | null
    revenue?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    taxSystem?: NullableStringFieldUpdateOperationsInput | string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUncheckedUpdateManyWithoutOrganizationNestedInput
    carts?: CartUncheckedUpdateOneWithoutOrganizationNestedInput
    counterpartyOf?: CounterpartyUncheckedUpdateManyWithoutCounterpartyNestedInput
    receivedRequests?: CounterpartyRequestUncheckedUpdateManyWithoutReceiverNestedInput
    sentRequests?: CounterpartyRequestUncheckedUpdateManyWithoutSenderNestedInput
    employees?: EmployeeUncheckedUpdateManyWithoutOrganizationNestedInput
    favorites?: FavoritesUncheckedUpdateManyWithoutOrganizationNestedInput
    receivedMessages?: MessageUncheckedUpdateManyWithoutReceiverOrganizationNestedInput
    sentMessages?: MessageUncheckedUpdateManyWithoutSenderOrganizationNestedInput
    products?: ProductUncheckedUpdateManyWithoutOrganizationNestedInput
    services?: ServiceUncheckedUpdateManyWithoutOrganizationNestedInput
    supplies?: SupplyUncheckedUpdateManyWithoutOrganizationNestedInput
    users?: UserUncheckedUpdateManyWithoutOrganizationNestedInput
    logistics?: LogisticsUncheckedUpdateManyWithoutOrganizationNestedInput
    supplyOrders?: SupplyOrderUncheckedUpdateManyWithoutOrganizationNestedInput
    partnerSupplyOrders?: SupplyOrderUncheckedUpdateManyWithoutPartnerNestedInput
    fulfillmentSupplyOrders?: SupplyOrderUncheckedUpdateManyWithoutFulfillmentCenterNestedInput
    wildberriesSupplies?: WildberriesSupplyUncheckedUpdateManyWithoutOrganizationNestedInput
    supplySuppliers?: SupplySupplierUncheckedUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationCreateWithoutReceivedMessagesInput = {
    id?: string
    inn: string
    kpp?: string | null
    name?: string | null
    fullName?: string | null
    ogrn?: string | null
    ogrnDate?: Date | string | null
    type: $Enums.OrganizationType
    createdAt?: Date | string
    updatedAt?: Date | string
    address?: string | null
    addressFull?: string | null
    status?: string | null
    actualityDate?: Date | string | null
    registrationDate?: Date | string | null
    liquidationDate?: Date | string | null
    managementName?: string | null
    managementPost?: string | null
    opfCode?: string | null
    opfFull?: string | null
    opfShort?: string | null
    okato?: string | null
    oktmo?: string | null
    okpo?: string | null
    okved?: string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: number | null
    revenue?: bigint | number | null
    taxSystem?: string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyCreateNestedManyWithoutOrganizationInput
    carts?: CartCreateNestedOneWithoutOrganizationInput
    counterpartyOf?: CounterpartyCreateNestedManyWithoutCounterpartyInput
    organizationCounterparties?: CounterpartyCreateNestedManyWithoutOrganizationInput
    receivedRequests?: CounterpartyRequestCreateNestedManyWithoutReceiverInput
    sentRequests?: CounterpartyRequestCreateNestedManyWithoutSenderInput
    employees?: EmployeeCreateNestedManyWithoutOrganizationInput
    favorites?: FavoritesCreateNestedManyWithoutOrganizationInput
    sentMessages?: MessageCreateNestedManyWithoutSenderOrganizationInput
    products?: ProductCreateNestedManyWithoutOrganizationInput
    services?: ServiceCreateNestedManyWithoutOrganizationInput
    supplies?: SupplyCreateNestedManyWithoutOrganizationInput
    users?: UserCreateNestedManyWithoutOrganizationInput
    logistics?: LogisticsCreateNestedManyWithoutOrganizationInput
    supplyOrders?: SupplyOrderCreateNestedManyWithoutOrganizationInput
    partnerSupplyOrders?: SupplyOrderCreateNestedManyWithoutPartnerInput
    fulfillmentSupplyOrders?: SupplyOrderCreateNestedManyWithoutFulfillmentCenterInput
    wildberriesSupplies?: WildberriesSupplyCreateNestedManyWithoutOrganizationInput
    supplySuppliers?: SupplySupplierCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationUncheckedCreateWithoutReceivedMessagesInput = {
    id?: string
    inn: string
    kpp?: string | null
    name?: string | null
    fullName?: string | null
    ogrn?: string | null
    ogrnDate?: Date | string | null
    type: $Enums.OrganizationType
    createdAt?: Date | string
    updatedAt?: Date | string
    address?: string | null
    addressFull?: string | null
    status?: string | null
    actualityDate?: Date | string | null
    registrationDate?: Date | string | null
    liquidationDate?: Date | string | null
    managementName?: string | null
    managementPost?: string | null
    opfCode?: string | null
    opfFull?: string | null
    opfShort?: string | null
    okato?: string | null
    oktmo?: string | null
    okpo?: string | null
    okved?: string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: number | null
    revenue?: bigint | number | null
    taxSystem?: string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUncheckedCreateNestedManyWithoutOrganizationInput
    carts?: CartUncheckedCreateNestedOneWithoutOrganizationInput
    counterpartyOf?: CounterpartyUncheckedCreateNestedManyWithoutCounterpartyInput
    organizationCounterparties?: CounterpartyUncheckedCreateNestedManyWithoutOrganizationInput
    receivedRequests?: CounterpartyRequestUncheckedCreateNestedManyWithoutReceiverInput
    sentRequests?: CounterpartyRequestUncheckedCreateNestedManyWithoutSenderInput
    employees?: EmployeeUncheckedCreateNestedManyWithoutOrganizationInput
    favorites?: FavoritesUncheckedCreateNestedManyWithoutOrganizationInput
    sentMessages?: MessageUncheckedCreateNestedManyWithoutSenderOrganizationInput
    products?: ProductUncheckedCreateNestedManyWithoutOrganizationInput
    services?: ServiceUncheckedCreateNestedManyWithoutOrganizationInput
    supplies?: SupplyUncheckedCreateNestedManyWithoutOrganizationInput
    users?: UserUncheckedCreateNestedManyWithoutOrganizationInput
    logistics?: LogisticsUncheckedCreateNestedManyWithoutOrganizationInput
    supplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutOrganizationInput
    partnerSupplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutPartnerInput
    fulfillmentSupplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutFulfillmentCenterInput
    wildberriesSupplies?: WildberriesSupplyUncheckedCreateNestedManyWithoutOrganizationInput
    supplySuppliers?: SupplySupplierUncheckedCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationCreateOrConnectWithoutReceivedMessagesInput = {
    where: OrganizationWhereUniqueInput
    create: XOR<OrganizationCreateWithoutReceivedMessagesInput, OrganizationUncheckedCreateWithoutReceivedMessagesInput>
  }

  export type UserCreateWithoutSentMessagesInput = {
    id?: string
    phone: string
    avatar?: string | null
    managerName?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    smsCodes?: SmsCodeCreateNestedManyWithoutUserInput
    organization?: OrganizationCreateNestedOneWithoutUsersInput
  }

  export type UserUncheckedCreateWithoutSentMessagesInput = {
    id?: string
    phone: string
    avatar?: string | null
    managerName?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    organizationId?: string | null
    smsCodes?: SmsCodeUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutSentMessagesInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutSentMessagesInput, UserUncheckedCreateWithoutSentMessagesInput>
  }

  export type OrganizationCreateWithoutSentMessagesInput = {
    id?: string
    inn: string
    kpp?: string | null
    name?: string | null
    fullName?: string | null
    ogrn?: string | null
    ogrnDate?: Date | string | null
    type: $Enums.OrganizationType
    createdAt?: Date | string
    updatedAt?: Date | string
    address?: string | null
    addressFull?: string | null
    status?: string | null
    actualityDate?: Date | string | null
    registrationDate?: Date | string | null
    liquidationDate?: Date | string | null
    managementName?: string | null
    managementPost?: string | null
    opfCode?: string | null
    opfFull?: string | null
    opfShort?: string | null
    okato?: string | null
    oktmo?: string | null
    okpo?: string | null
    okved?: string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: number | null
    revenue?: bigint | number | null
    taxSystem?: string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyCreateNestedManyWithoutOrganizationInput
    carts?: CartCreateNestedOneWithoutOrganizationInput
    counterpartyOf?: CounterpartyCreateNestedManyWithoutCounterpartyInput
    organizationCounterparties?: CounterpartyCreateNestedManyWithoutOrganizationInput
    receivedRequests?: CounterpartyRequestCreateNestedManyWithoutReceiverInput
    sentRequests?: CounterpartyRequestCreateNestedManyWithoutSenderInput
    employees?: EmployeeCreateNestedManyWithoutOrganizationInput
    favorites?: FavoritesCreateNestedManyWithoutOrganizationInput
    receivedMessages?: MessageCreateNestedManyWithoutReceiverOrganizationInput
    products?: ProductCreateNestedManyWithoutOrganizationInput
    services?: ServiceCreateNestedManyWithoutOrganizationInput
    supplies?: SupplyCreateNestedManyWithoutOrganizationInput
    users?: UserCreateNestedManyWithoutOrganizationInput
    logistics?: LogisticsCreateNestedManyWithoutOrganizationInput
    supplyOrders?: SupplyOrderCreateNestedManyWithoutOrganizationInput
    partnerSupplyOrders?: SupplyOrderCreateNestedManyWithoutPartnerInput
    fulfillmentSupplyOrders?: SupplyOrderCreateNestedManyWithoutFulfillmentCenterInput
    wildberriesSupplies?: WildberriesSupplyCreateNestedManyWithoutOrganizationInput
    supplySuppliers?: SupplySupplierCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationUncheckedCreateWithoutSentMessagesInput = {
    id?: string
    inn: string
    kpp?: string | null
    name?: string | null
    fullName?: string | null
    ogrn?: string | null
    ogrnDate?: Date | string | null
    type: $Enums.OrganizationType
    createdAt?: Date | string
    updatedAt?: Date | string
    address?: string | null
    addressFull?: string | null
    status?: string | null
    actualityDate?: Date | string | null
    registrationDate?: Date | string | null
    liquidationDate?: Date | string | null
    managementName?: string | null
    managementPost?: string | null
    opfCode?: string | null
    opfFull?: string | null
    opfShort?: string | null
    okato?: string | null
    oktmo?: string | null
    okpo?: string | null
    okved?: string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: number | null
    revenue?: bigint | number | null
    taxSystem?: string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUncheckedCreateNestedManyWithoutOrganizationInput
    carts?: CartUncheckedCreateNestedOneWithoutOrganizationInput
    counterpartyOf?: CounterpartyUncheckedCreateNestedManyWithoutCounterpartyInput
    organizationCounterparties?: CounterpartyUncheckedCreateNestedManyWithoutOrganizationInput
    receivedRequests?: CounterpartyRequestUncheckedCreateNestedManyWithoutReceiverInput
    sentRequests?: CounterpartyRequestUncheckedCreateNestedManyWithoutSenderInput
    employees?: EmployeeUncheckedCreateNestedManyWithoutOrganizationInput
    favorites?: FavoritesUncheckedCreateNestedManyWithoutOrganizationInput
    receivedMessages?: MessageUncheckedCreateNestedManyWithoutReceiverOrganizationInput
    products?: ProductUncheckedCreateNestedManyWithoutOrganizationInput
    services?: ServiceUncheckedCreateNestedManyWithoutOrganizationInput
    supplies?: SupplyUncheckedCreateNestedManyWithoutOrganizationInput
    users?: UserUncheckedCreateNestedManyWithoutOrganizationInput
    logistics?: LogisticsUncheckedCreateNestedManyWithoutOrganizationInput
    supplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutOrganizationInput
    partnerSupplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutPartnerInput
    fulfillmentSupplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutFulfillmentCenterInput
    wildberriesSupplies?: WildberriesSupplyUncheckedCreateNestedManyWithoutOrganizationInput
    supplySuppliers?: SupplySupplierUncheckedCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationCreateOrConnectWithoutSentMessagesInput = {
    where: OrganizationWhereUniqueInput
    create: XOR<OrganizationCreateWithoutSentMessagesInput, OrganizationUncheckedCreateWithoutSentMessagesInput>
  }

  export type OrganizationUpsertWithoutReceivedMessagesInput = {
    update: XOR<OrganizationUpdateWithoutReceivedMessagesInput, OrganizationUncheckedUpdateWithoutReceivedMessagesInput>
    create: XOR<OrganizationCreateWithoutReceivedMessagesInput, OrganizationUncheckedCreateWithoutReceivedMessagesInput>
    where?: OrganizationWhereInput
  }

  export type OrganizationUpdateToOneWithWhereWithoutReceivedMessagesInput = {
    where?: OrganizationWhereInput
    data: XOR<OrganizationUpdateWithoutReceivedMessagesInput, OrganizationUncheckedUpdateWithoutReceivedMessagesInput>
  }

  export type OrganizationUpdateWithoutReceivedMessagesInput = {
    id?: StringFieldUpdateOperationsInput | string
    inn?: StringFieldUpdateOperationsInput | string
    kpp?: NullableStringFieldUpdateOperationsInput | string | null
    name?: NullableStringFieldUpdateOperationsInput | string | null
    fullName?: NullableStringFieldUpdateOperationsInput | string | null
    ogrn?: NullableStringFieldUpdateOperationsInput | string | null
    ogrnDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    type?: EnumOrganizationTypeFieldUpdateOperationsInput | $Enums.OrganizationType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    address?: NullableStringFieldUpdateOperationsInput | string | null
    addressFull?: NullableStringFieldUpdateOperationsInput | string | null
    status?: NullableStringFieldUpdateOperationsInput | string | null
    actualityDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    registrationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    liquidationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managementName?: NullableStringFieldUpdateOperationsInput | string | null
    managementPost?: NullableStringFieldUpdateOperationsInput | string | null
    opfCode?: NullableStringFieldUpdateOperationsInput | string | null
    opfFull?: NullableStringFieldUpdateOperationsInput | string | null
    opfShort?: NullableStringFieldUpdateOperationsInput | string | null
    okato?: NullableStringFieldUpdateOperationsInput | string | null
    oktmo?: NullableStringFieldUpdateOperationsInput | string | null
    okpo?: NullableStringFieldUpdateOperationsInput | string | null
    okved?: NullableStringFieldUpdateOperationsInput | string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: NullableIntFieldUpdateOperationsInput | number | null
    revenue?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    taxSystem?: NullableStringFieldUpdateOperationsInput | string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUpdateManyWithoutOrganizationNestedInput
    carts?: CartUpdateOneWithoutOrganizationNestedInput
    counterpartyOf?: CounterpartyUpdateManyWithoutCounterpartyNestedInput
    organizationCounterparties?: CounterpartyUpdateManyWithoutOrganizationNestedInput
    receivedRequests?: CounterpartyRequestUpdateManyWithoutReceiverNestedInput
    sentRequests?: CounterpartyRequestUpdateManyWithoutSenderNestedInput
    employees?: EmployeeUpdateManyWithoutOrganizationNestedInput
    favorites?: FavoritesUpdateManyWithoutOrganizationNestedInput
    sentMessages?: MessageUpdateManyWithoutSenderOrganizationNestedInput
    products?: ProductUpdateManyWithoutOrganizationNestedInput
    services?: ServiceUpdateManyWithoutOrganizationNestedInput
    supplies?: SupplyUpdateManyWithoutOrganizationNestedInput
    users?: UserUpdateManyWithoutOrganizationNestedInput
    logistics?: LogisticsUpdateManyWithoutOrganizationNestedInput
    supplyOrders?: SupplyOrderUpdateManyWithoutOrganizationNestedInput
    partnerSupplyOrders?: SupplyOrderUpdateManyWithoutPartnerNestedInput
    fulfillmentSupplyOrders?: SupplyOrderUpdateManyWithoutFulfillmentCenterNestedInput
    wildberriesSupplies?: WildberriesSupplyUpdateManyWithoutOrganizationNestedInput
    supplySuppliers?: SupplySupplierUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationUncheckedUpdateWithoutReceivedMessagesInput = {
    id?: StringFieldUpdateOperationsInput | string
    inn?: StringFieldUpdateOperationsInput | string
    kpp?: NullableStringFieldUpdateOperationsInput | string | null
    name?: NullableStringFieldUpdateOperationsInput | string | null
    fullName?: NullableStringFieldUpdateOperationsInput | string | null
    ogrn?: NullableStringFieldUpdateOperationsInput | string | null
    ogrnDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    type?: EnumOrganizationTypeFieldUpdateOperationsInput | $Enums.OrganizationType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    address?: NullableStringFieldUpdateOperationsInput | string | null
    addressFull?: NullableStringFieldUpdateOperationsInput | string | null
    status?: NullableStringFieldUpdateOperationsInput | string | null
    actualityDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    registrationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    liquidationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managementName?: NullableStringFieldUpdateOperationsInput | string | null
    managementPost?: NullableStringFieldUpdateOperationsInput | string | null
    opfCode?: NullableStringFieldUpdateOperationsInput | string | null
    opfFull?: NullableStringFieldUpdateOperationsInput | string | null
    opfShort?: NullableStringFieldUpdateOperationsInput | string | null
    okato?: NullableStringFieldUpdateOperationsInput | string | null
    oktmo?: NullableStringFieldUpdateOperationsInput | string | null
    okpo?: NullableStringFieldUpdateOperationsInput | string | null
    okved?: NullableStringFieldUpdateOperationsInput | string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: NullableIntFieldUpdateOperationsInput | number | null
    revenue?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    taxSystem?: NullableStringFieldUpdateOperationsInput | string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUncheckedUpdateManyWithoutOrganizationNestedInput
    carts?: CartUncheckedUpdateOneWithoutOrganizationNestedInput
    counterpartyOf?: CounterpartyUncheckedUpdateManyWithoutCounterpartyNestedInput
    organizationCounterparties?: CounterpartyUncheckedUpdateManyWithoutOrganizationNestedInput
    receivedRequests?: CounterpartyRequestUncheckedUpdateManyWithoutReceiverNestedInput
    sentRequests?: CounterpartyRequestUncheckedUpdateManyWithoutSenderNestedInput
    employees?: EmployeeUncheckedUpdateManyWithoutOrganizationNestedInput
    favorites?: FavoritesUncheckedUpdateManyWithoutOrganizationNestedInput
    sentMessages?: MessageUncheckedUpdateManyWithoutSenderOrganizationNestedInput
    products?: ProductUncheckedUpdateManyWithoutOrganizationNestedInput
    services?: ServiceUncheckedUpdateManyWithoutOrganizationNestedInput
    supplies?: SupplyUncheckedUpdateManyWithoutOrganizationNestedInput
    users?: UserUncheckedUpdateManyWithoutOrganizationNestedInput
    logistics?: LogisticsUncheckedUpdateManyWithoutOrganizationNestedInput
    supplyOrders?: SupplyOrderUncheckedUpdateManyWithoutOrganizationNestedInput
    partnerSupplyOrders?: SupplyOrderUncheckedUpdateManyWithoutPartnerNestedInput
    fulfillmentSupplyOrders?: SupplyOrderUncheckedUpdateManyWithoutFulfillmentCenterNestedInput
    wildberriesSupplies?: WildberriesSupplyUncheckedUpdateManyWithoutOrganizationNestedInput
    supplySuppliers?: SupplySupplierUncheckedUpdateManyWithoutOrganizationNestedInput
  }

  export type UserUpsertWithoutSentMessagesInput = {
    update: XOR<UserUpdateWithoutSentMessagesInput, UserUncheckedUpdateWithoutSentMessagesInput>
    create: XOR<UserCreateWithoutSentMessagesInput, UserUncheckedCreateWithoutSentMessagesInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutSentMessagesInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutSentMessagesInput, UserUncheckedUpdateWithoutSentMessagesInput>
  }

  export type UserUpdateWithoutSentMessagesInput = {
    id?: StringFieldUpdateOperationsInput | string
    phone?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    managerName?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    smsCodes?: SmsCodeUpdateManyWithoutUserNestedInput
    organization?: OrganizationUpdateOneWithoutUsersNestedInput
  }

  export type UserUncheckedUpdateWithoutSentMessagesInput = {
    id?: StringFieldUpdateOperationsInput | string
    phone?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    managerName?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    smsCodes?: SmsCodeUncheckedUpdateManyWithoutUserNestedInput
  }

  export type OrganizationUpsertWithoutSentMessagesInput = {
    update: XOR<OrganizationUpdateWithoutSentMessagesInput, OrganizationUncheckedUpdateWithoutSentMessagesInput>
    create: XOR<OrganizationCreateWithoutSentMessagesInput, OrganizationUncheckedCreateWithoutSentMessagesInput>
    where?: OrganizationWhereInput
  }

  export type OrganizationUpdateToOneWithWhereWithoutSentMessagesInput = {
    where?: OrganizationWhereInput
    data: XOR<OrganizationUpdateWithoutSentMessagesInput, OrganizationUncheckedUpdateWithoutSentMessagesInput>
  }

  export type OrganizationUpdateWithoutSentMessagesInput = {
    id?: StringFieldUpdateOperationsInput | string
    inn?: StringFieldUpdateOperationsInput | string
    kpp?: NullableStringFieldUpdateOperationsInput | string | null
    name?: NullableStringFieldUpdateOperationsInput | string | null
    fullName?: NullableStringFieldUpdateOperationsInput | string | null
    ogrn?: NullableStringFieldUpdateOperationsInput | string | null
    ogrnDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    type?: EnumOrganizationTypeFieldUpdateOperationsInput | $Enums.OrganizationType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    address?: NullableStringFieldUpdateOperationsInput | string | null
    addressFull?: NullableStringFieldUpdateOperationsInput | string | null
    status?: NullableStringFieldUpdateOperationsInput | string | null
    actualityDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    registrationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    liquidationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managementName?: NullableStringFieldUpdateOperationsInput | string | null
    managementPost?: NullableStringFieldUpdateOperationsInput | string | null
    opfCode?: NullableStringFieldUpdateOperationsInput | string | null
    opfFull?: NullableStringFieldUpdateOperationsInput | string | null
    opfShort?: NullableStringFieldUpdateOperationsInput | string | null
    okato?: NullableStringFieldUpdateOperationsInput | string | null
    oktmo?: NullableStringFieldUpdateOperationsInput | string | null
    okpo?: NullableStringFieldUpdateOperationsInput | string | null
    okved?: NullableStringFieldUpdateOperationsInput | string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: NullableIntFieldUpdateOperationsInput | number | null
    revenue?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    taxSystem?: NullableStringFieldUpdateOperationsInput | string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUpdateManyWithoutOrganizationNestedInput
    carts?: CartUpdateOneWithoutOrganizationNestedInput
    counterpartyOf?: CounterpartyUpdateManyWithoutCounterpartyNestedInput
    organizationCounterparties?: CounterpartyUpdateManyWithoutOrganizationNestedInput
    receivedRequests?: CounterpartyRequestUpdateManyWithoutReceiverNestedInput
    sentRequests?: CounterpartyRequestUpdateManyWithoutSenderNestedInput
    employees?: EmployeeUpdateManyWithoutOrganizationNestedInput
    favorites?: FavoritesUpdateManyWithoutOrganizationNestedInput
    receivedMessages?: MessageUpdateManyWithoutReceiverOrganizationNestedInput
    products?: ProductUpdateManyWithoutOrganizationNestedInput
    services?: ServiceUpdateManyWithoutOrganizationNestedInput
    supplies?: SupplyUpdateManyWithoutOrganizationNestedInput
    users?: UserUpdateManyWithoutOrganizationNestedInput
    logistics?: LogisticsUpdateManyWithoutOrganizationNestedInput
    supplyOrders?: SupplyOrderUpdateManyWithoutOrganizationNestedInput
    partnerSupplyOrders?: SupplyOrderUpdateManyWithoutPartnerNestedInput
    fulfillmentSupplyOrders?: SupplyOrderUpdateManyWithoutFulfillmentCenterNestedInput
    wildberriesSupplies?: WildberriesSupplyUpdateManyWithoutOrganizationNestedInput
    supplySuppliers?: SupplySupplierUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationUncheckedUpdateWithoutSentMessagesInput = {
    id?: StringFieldUpdateOperationsInput | string
    inn?: StringFieldUpdateOperationsInput | string
    kpp?: NullableStringFieldUpdateOperationsInput | string | null
    name?: NullableStringFieldUpdateOperationsInput | string | null
    fullName?: NullableStringFieldUpdateOperationsInput | string | null
    ogrn?: NullableStringFieldUpdateOperationsInput | string | null
    ogrnDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    type?: EnumOrganizationTypeFieldUpdateOperationsInput | $Enums.OrganizationType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    address?: NullableStringFieldUpdateOperationsInput | string | null
    addressFull?: NullableStringFieldUpdateOperationsInput | string | null
    status?: NullableStringFieldUpdateOperationsInput | string | null
    actualityDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    registrationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    liquidationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managementName?: NullableStringFieldUpdateOperationsInput | string | null
    managementPost?: NullableStringFieldUpdateOperationsInput | string | null
    opfCode?: NullableStringFieldUpdateOperationsInput | string | null
    opfFull?: NullableStringFieldUpdateOperationsInput | string | null
    opfShort?: NullableStringFieldUpdateOperationsInput | string | null
    okato?: NullableStringFieldUpdateOperationsInput | string | null
    oktmo?: NullableStringFieldUpdateOperationsInput | string | null
    okpo?: NullableStringFieldUpdateOperationsInput | string | null
    okved?: NullableStringFieldUpdateOperationsInput | string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: NullableIntFieldUpdateOperationsInput | number | null
    revenue?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    taxSystem?: NullableStringFieldUpdateOperationsInput | string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUncheckedUpdateManyWithoutOrganizationNestedInput
    carts?: CartUncheckedUpdateOneWithoutOrganizationNestedInput
    counterpartyOf?: CounterpartyUncheckedUpdateManyWithoutCounterpartyNestedInput
    organizationCounterparties?: CounterpartyUncheckedUpdateManyWithoutOrganizationNestedInput
    receivedRequests?: CounterpartyRequestUncheckedUpdateManyWithoutReceiverNestedInput
    sentRequests?: CounterpartyRequestUncheckedUpdateManyWithoutSenderNestedInput
    employees?: EmployeeUncheckedUpdateManyWithoutOrganizationNestedInput
    favorites?: FavoritesUncheckedUpdateManyWithoutOrganizationNestedInput
    receivedMessages?: MessageUncheckedUpdateManyWithoutReceiverOrganizationNestedInput
    products?: ProductUncheckedUpdateManyWithoutOrganizationNestedInput
    services?: ServiceUncheckedUpdateManyWithoutOrganizationNestedInput
    supplies?: SupplyUncheckedUpdateManyWithoutOrganizationNestedInput
    users?: UserUncheckedUpdateManyWithoutOrganizationNestedInput
    logistics?: LogisticsUncheckedUpdateManyWithoutOrganizationNestedInput
    supplyOrders?: SupplyOrderUncheckedUpdateManyWithoutOrganizationNestedInput
    partnerSupplyOrders?: SupplyOrderUncheckedUpdateManyWithoutPartnerNestedInput
    fulfillmentSupplyOrders?: SupplyOrderUncheckedUpdateManyWithoutFulfillmentCenterNestedInput
    wildberriesSupplies?: WildberriesSupplyUncheckedUpdateManyWithoutOrganizationNestedInput
    supplySuppliers?: SupplySupplierUncheckedUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationCreateWithoutServicesInput = {
    id?: string
    inn: string
    kpp?: string | null
    name?: string | null
    fullName?: string | null
    ogrn?: string | null
    ogrnDate?: Date | string | null
    type: $Enums.OrganizationType
    createdAt?: Date | string
    updatedAt?: Date | string
    address?: string | null
    addressFull?: string | null
    status?: string | null
    actualityDate?: Date | string | null
    registrationDate?: Date | string | null
    liquidationDate?: Date | string | null
    managementName?: string | null
    managementPost?: string | null
    opfCode?: string | null
    opfFull?: string | null
    opfShort?: string | null
    okato?: string | null
    oktmo?: string | null
    okpo?: string | null
    okved?: string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: number | null
    revenue?: bigint | number | null
    taxSystem?: string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyCreateNestedManyWithoutOrganizationInput
    carts?: CartCreateNestedOneWithoutOrganizationInput
    counterpartyOf?: CounterpartyCreateNestedManyWithoutCounterpartyInput
    organizationCounterparties?: CounterpartyCreateNestedManyWithoutOrganizationInput
    receivedRequests?: CounterpartyRequestCreateNestedManyWithoutReceiverInput
    sentRequests?: CounterpartyRequestCreateNestedManyWithoutSenderInput
    employees?: EmployeeCreateNestedManyWithoutOrganizationInput
    favorites?: FavoritesCreateNestedManyWithoutOrganizationInput
    receivedMessages?: MessageCreateNestedManyWithoutReceiverOrganizationInput
    sentMessages?: MessageCreateNestedManyWithoutSenderOrganizationInput
    products?: ProductCreateNestedManyWithoutOrganizationInput
    supplies?: SupplyCreateNestedManyWithoutOrganizationInput
    users?: UserCreateNestedManyWithoutOrganizationInput
    logistics?: LogisticsCreateNestedManyWithoutOrganizationInput
    supplyOrders?: SupplyOrderCreateNestedManyWithoutOrganizationInput
    partnerSupplyOrders?: SupplyOrderCreateNestedManyWithoutPartnerInput
    fulfillmentSupplyOrders?: SupplyOrderCreateNestedManyWithoutFulfillmentCenterInput
    wildberriesSupplies?: WildberriesSupplyCreateNestedManyWithoutOrganizationInput
    supplySuppliers?: SupplySupplierCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationUncheckedCreateWithoutServicesInput = {
    id?: string
    inn: string
    kpp?: string | null
    name?: string | null
    fullName?: string | null
    ogrn?: string | null
    ogrnDate?: Date | string | null
    type: $Enums.OrganizationType
    createdAt?: Date | string
    updatedAt?: Date | string
    address?: string | null
    addressFull?: string | null
    status?: string | null
    actualityDate?: Date | string | null
    registrationDate?: Date | string | null
    liquidationDate?: Date | string | null
    managementName?: string | null
    managementPost?: string | null
    opfCode?: string | null
    opfFull?: string | null
    opfShort?: string | null
    okato?: string | null
    oktmo?: string | null
    okpo?: string | null
    okved?: string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: number | null
    revenue?: bigint | number | null
    taxSystem?: string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUncheckedCreateNestedManyWithoutOrganizationInput
    carts?: CartUncheckedCreateNestedOneWithoutOrganizationInput
    counterpartyOf?: CounterpartyUncheckedCreateNestedManyWithoutCounterpartyInput
    organizationCounterparties?: CounterpartyUncheckedCreateNestedManyWithoutOrganizationInput
    receivedRequests?: CounterpartyRequestUncheckedCreateNestedManyWithoutReceiverInput
    sentRequests?: CounterpartyRequestUncheckedCreateNestedManyWithoutSenderInput
    employees?: EmployeeUncheckedCreateNestedManyWithoutOrganizationInput
    favorites?: FavoritesUncheckedCreateNestedManyWithoutOrganizationInput
    receivedMessages?: MessageUncheckedCreateNestedManyWithoutReceiverOrganizationInput
    sentMessages?: MessageUncheckedCreateNestedManyWithoutSenderOrganizationInput
    products?: ProductUncheckedCreateNestedManyWithoutOrganizationInput
    supplies?: SupplyUncheckedCreateNestedManyWithoutOrganizationInput
    users?: UserUncheckedCreateNestedManyWithoutOrganizationInput
    logistics?: LogisticsUncheckedCreateNestedManyWithoutOrganizationInput
    supplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutOrganizationInput
    partnerSupplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutPartnerInput
    fulfillmentSupplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutFulfillmentCenterInput
    wildberriesSupplies?: WildberriesSupplyUncheckedCreateNestedManyWithoutOrganizationInput
    supplySuppliers?: SupplySupplierUncheckedCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationCreateOrConnectWithoutServicesInput = {
    where: OrganizationWhereUniqueInput
    create: XOR<OrganizationCreateWithoutServicesInput, OrganizationUncheckedCreateWithoutServicesInput>
  }

  export type OrganizationUpsertWithoutServicesInput = {
    update: XOR<OrganizationUpdateWithoutServicesInput, OrganizationUncheckedUpdateWithoutServicesInput>
    create: XOR<OrganizationCreateWithoutServicesInput, OrganizationUncheckedCreateWithoutServicesInput>
    where?: OrganizationWhereInput
  }

  export type OrganizationUpdateToOneWithWhereWithoutServicesInput = {
    where?: OrganizationWhereInput
    data: XOR<OrganizationUpdateWithoutServicesInput, OrganizationUncheckedUpdateWithoutServicesInput>
  }

  export type OrganizationUpdateWithoutServicesInput = {
    id?: StringFieldUpdateOperationsInput | string
    inn?: StringFieldUpdateOperationsInput | string
    kpp?: NullableStringFieldUpdateOperationsInput | string | null
    name?: NullableStringFieldUpdateOperationsInput | string | null
    fullName?: NullableStringFieldUpdateOperationsInput | string | null
    ogrn?: NullableStringFieldUpdateOperationsInput | string | null
    ogrnDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    type?: EnumOrganizationTypeFieldUpdateOperationsInput | $Enums.OrganizationType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    address?: NullableStringFieldUpdateOperationsInput | string | null
    addressFull?: NullableStringFieldUpdateOperationsInput | string | null
    status?: NullableStringFieldUpdateOperationsInput | string | null
    actualityDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    registrationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    liquidationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managementName?: NullableStringFieldUpdateOperationsInput | string | null
    managementPost?: NullableStringFieldUpdateOperationsInput | string | null
    opfCode?: NullableStringFieldUpdateOperationsInput | string | null
    opfFull?: NullableStringFieldUpdateOperationsInput | string | null
    opfShort?: NullableStringFieldUpdateOperationsInput | string | null
    okato?: NullableStringFieldUpdateOperationsInput | string | null
    oktmo?: NullableStringFieldUpdateOperationsInput | string | null
    okpo?: NullableStringFieldUpdateOperationsInput | string | null
    okved?: NullableStringFieldUpdateOperationsInput | string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: NullableIntFieldUpdateOperationsInput | number | null
    revenue?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    taxSystem?: NullableStringFieldUpdateOperationsInput | string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUpdateManyWithoutOrganizationNestedInput
    carts?: CartUpdateOneWithoutOrganizationNestedInput
    counterpartyOf?: CounterpartyUpdateManyWithoutCounterpartyNestedInput
    organizationCounterparties?: CounterpartyUpdateManyWithoutOrganizationNestedInput
    receivedRequests?: CounterpartyRequestUpdateManyWithoutReceiverNestedInput
    sentRequests?: CounterpartyRequestUpdateManyWithoutSenderNestedInput
    employees?: EmployeeUpdateManyWithoutOrganizationNestedInput
    favorites?: FavoritesUpdateManyWithoutOrganizationNestedInput
    receivedMessages?: MessageUpdateManyWithoutReceiverOrganizationNestedInput
    sentMessages?: MessageUpdateManyWithoutSenderOrganizationNestedInput
    products?: ProductUpdateManyWithoutOrganizationNestedInput
    supplies?: SupplyUpdateManyWithoutOrganizationNestedInput
    users?: UserUpdateManyWithoutOrganizationNestedInput
    logistics?: LogisticsUpdateManyWithoutOrganizationNestedInput
    supplyOrders?: SupplyOrderUpdateManyWithoutOrganizationNestedInput
    partnerSupplyOrders?: SupplyOrderUpdateManyWithoutPartnerNestedInput
    fulfillmentSupplyOrders?: SupplyOrderUpdateManyWithoutFulfillmentCenterNestedInput
    wildberriesSupplies?: WildberriesSupplyUpdateManyWithoutOrganizationNestedInput
    supplySuppliers?: SupplySupplierUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationUncheckedUpdateWithoutServicesInput = {
    id?: StringFieldUpdateOperationsInput | string
    inn?: StringFieldUpdateOperationsInput | string
    kpp?: NullableStringFieldUpdateOperationsInput | string | null
    name?: NullableStringFieldUpdateOperationsInput | string | null
    fullName?: NullableStringFieldUpdateOperationsInput | string | null
    ogrn?: NullableStringFieldUpdateOperationsInput | string | null
    ogrnDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    type?: EnumOrganizationTypeFieldUpdateOperationsInput | $Enums.OrganizationType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    address?: NullableStringFieldUpdateOperationsInput | string | null
    addressFull?: NullableStringFieldUpdateOperationsInput | string | null
    status?: NullableStringFieldUpdateOperationsInput | string | null
    actualityDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    registrationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    liquidationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managementName?: NullableStringFieldUpdateOperationsInput | string | null
    managementPost?: NullableStringFieldUpdateOperationsInput | string | null
    opfCode?: NullableStringFieldUpdateOperationsInput | string | null
    opfFull?: NullableStringFieldUpdateOperationsInput | string | null
    opfShort?: NullableStringFieldUpdateOperationsInput | string | null
    okato?: NullableStringFieldUpdateOperationsInput | string | null
    oktmo?: NullableStringFieldUpdateOperationsInput | string | null
    okpo?: NullableStringFieldUpdateOperationsInput | string | null
    okved?: NullableStringFieldUpdateOperationsInput | string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: NullableIntFieldUpdateOperationsInput | number | null
    revenue?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    taxSystem?: NullableStringFieldUpdateOperationsInput | string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUncheckedUpdateManyWithoutOrganizationNestedInput
    carts?: CartUncheckedUpdateOneWithoutOrganizationNestedInput
    counterpartyOf?: CounterpartyUncheckedUpdateManyWithoutCounterpartyNestedInput
    organizationCounterparties?: CounterpartyUncheckedUpdateManyWithoutOrganizationNestedInput
    receivedRequests?: CounterpartyRequestUncheckedUpdateManyWithoutReceiverNestedInput
    sentRequests?: CounterpartyRequestUncheckedUpdateManyWithoutSenderNestedInput
    employees?: EmployeeUncheckedUpdateManyWithoutOrganizationNestedInput
    favorites?: FavoritesUncheckedUpdateManyWithoutOrganizationNestedInput
    receivedMessages?: MessageUncheckedUpdateManyWithoutReceiverOrganizationNestedInput
    sentMessages?: MessageUncheckedUpdateManyWithoutSenderOrganizationNestedInput
    products?: ProductUncheckedUpdateManyWithoutOrganizationNestedInput
    supplies?: SupplyUncheckedUpdateManyWithoutOrganizationNestedInput
    users?: UserUncheckedUpdateManyWithoutOrganizationNestedInput
    logistics?: LogisticsUncheckedUpdateManyWithoutOrganizationNestedInput
    supplyOrders?: SupplyOrderUncheckedUpdateManyWithoutOrganizationNestedInput
    partnerSupplyOrders?: SupplyOrderUncheckedUpdateManyWithoutPartnerNestedInput
    fulfillmentSupplyOrders?: SupplyOrderUncheckedUpdateManyWithoutFulfillmentCenterNestedInput
    wildberriesSupplies?: WildberriesSupplyUncheckedUpdateManyWithoutOrganizationNestedInput
    supplySuppliers?: SupplySupplierUncheckedUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationCreateWithoutSuppliesInput = {
    id?: string
    inn: string
    kpp?: string | null
    name?: string | null
    fullName?: string | null
    ogrn?: string | null
    ogrnDate?: Date | string | null
    type: $Enums.OrganizationType
    createdAt?: Date | string
    updatedAt?: Date | string
    address?: string | null
    addressFull?: string | null
    status?: string | null
    actualityDate?: Date | string | null
    registrationDate?: Date | string | null
    liquidationDate?: Date | string | null
    managementName?: string | null
    managementPost?: string | null
    opfCode?: string | null
    opfFull?: string | null
    opfShort?: string | null
    okato?: string | null
    oktmo?: string | null
    okpo?: string | null
    okved?: string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: number | null
    revenue?: bigint | number | null
    taxSystem?: string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyCreateNestedManyWithoutOrganizationInput
    carts?: CartCreateNestedOneWithoutOrganizationInput
    counterpartyOf?: CounterpartyCreateNestedManyWithoutCounterpartyInput
    organizationCounterparties?: CounterpartyCreateNestedManyWithoutOrganizationInput
    receivedRequests?: CounterpartyRequestCreateNestedManyWithoutReceiverInput
    sentRequests?: CounterpartyRequestCreateNestedManyWithoutSenderInput
    employees?: EmployeeCreateNestedManyWithoutOrganizationInput
    favorites?: FavoritesCreateNestedManyWithoutOrganizationInput
    receivedMessages?: MessageCreateNestedManyWithoutReceiverOrganizationInput
    sentMessages?: MessageCreateNestedManyWithoutSenderOrganizationInput
    products?: ProductCreateNestedManyWithoutOrganizationInput
    services?: ServiceCreateNestedManyWithoutOrganizationInput
    users?: UserCreateNestedManyWithoutOrganizationInput
    logistics?: LogisticsCreateNestedManyWithoutOrganizationInput
    supplyOrders?: SupplyOrderCreateNestedManyWithoutOrganizationInput
    partnerSupplyOrders?: SupplyOrderCreateNestedManyWithoutPartnerInput
    fulfillmentSupplyOrders?: SupplyOrderCreateNestedManyWithoutFulfillmentCenterInput
    wildberriesSupplies?: WildberriesSupplyCreateNestedManyWithoutOrganizationInput
    supplySuppliers?: SupplySupplierCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationUncheckedCreateWithoutSuppliesInput = {
    id?: string
    inn: string
    kpp?: string | null
    name?: string | null
    fullName?: string | null
    ogrn?: string | null
    ogrnDate?: Date | string | null
    type: $Enums.OrganizationType
    createdAt?: Date | string
    updatedAt?: Date | string
    address?: string | null
    addressFull?: string | null
    status?: string | null
    actualityDate?: Date | string | null
    registrationDate?: Date | string | null
    liquidationDate?: Date | string | null
    managementName?: string | null
    managementPost?: string | null
    opfCode?: string | null
    opfFull?: string | null
    opfShort?: string | null
    okato?: string | null
    oktmo?: string | null
    okpo?: string | null
    okved?: string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: number | null
    revenue?: bigint | number | null
    taxSystem?: string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUncheckedCreateNestedManyWithoutOrganizationInput
    carts?: CartUncheckedCreateNestedOneWithoutOrganizationInput
    counterpartyOf?: CounterpartyUncheckedCreateNestedManyWithoutCounterpartyInput
    organizationCounterparties?: CounterpartyUncheckedCreateNestedManyWithoutOrganizationInput
    receivedRequests?: CounterpartyRequestUncheckedCreateNestedManyWithoutReceiverInput
    sentRequests?: CounterpartyRequestUncheckedCreateNestedManyWithoutSenderInput
    employees?: EmployeeUncheckedCreateNestedManyWithoutOrganizationInput
    favorites?: FavoritesUncheckedCreateNestedManyWithoutOrganizationInput
    receivedMessages?: MessageUncheckedCreateNestedManyWithoutReceiverOrganizationInput
    sentMessages?: MessageUncheckedCreateNestedManyWithoutSenderOrganizationInput
    products?: ProductUncheckedCreateNestedManyWithoutOrganizationInput
    services?: ServiceUncheckedCreateNestedManyWithoutOrganizationInput
    users?: UserUncheckedCreateNestedManyWithoutOrganizationInput
    logistics?: LogisticsUncheckedCreateNestedManyWithoutOrganizationInput
    supplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutOrganizationInput
    partnerSupplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutPartnerInput
    fulfillmentSupplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutFulfillmentCenterInput
    wildberriesSupplies?: WildberriesSupplyUncheckedCreateNestedManyWithoutOrganizationInput
    supplySuppliers?: SupplySupplierUncheckedCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationCreateOrConnectWithoutSuppliesInput = {
    where: OrganizationWhereUniqueInput
    create: XOR<OrganizationCreateWithoutSuppliesInput, OrganizationUncheckedCreateWithoutSuppliesInput>
  }

  export type OrganizationUpsertWithoutSuppliesInput = {
    update: XOR<OrganizationUpdateWithoutSuppliesInput, OrganizationUncheckedUpdateWithoutSuppliesInput>
    create: XOR<OrganizationCreateWithoutSuppliesInput, OrganizationUncheckedCreateWithoutSuppliesInput>
    where?: OrganizationWhereInput
  }

  export type OrganizationUpdateToOneWithWhereWithoutSuppliesInput = {
    where?: OrganizationWhereInput
    data: XOR<OrganizationUpdateWithoutSuppliesInput, OrganizationUncheckedUpdateWithoutSuppliesInput>
  }

  export type OrganizationUpdateWithoutSuppliesInput = {
    id?: StringFieldUpdateOperationsInput | string
    inn?: StringFieldUpdateOperationsInput | string
    kpp?: NullableStringFieldUpdateOperationsInput | string | null
    name?: NullableStringFieldUpdateOperationsInput | string | null
    fullName?: NullableStringFieldUpdateOperationsInput | string | null
    ogrn?: NullableStringFieldUpdateOperationsInput | string | null
    ogrnDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    type?: EnumOrganizationTypeFieldUpdateOperationsInput | $Enums.OrganizationType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    address?: NullableStringFieldUpdateOperationsInput | string | null
    addressFull?: NullableStringFieldUpdateOperationsInput | string | null
    status?: NullableStringFieldUpdateOperationsInput | string | null
    actualityDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    registrationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    liquidationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managementName?: NullableStringFieldUpdateOperationsInput | string | null
    managementPost?: NullableStringFieldUpdateOperationsInput | string | null
    opfCode?: NullableStringFieldUpdateOperationsInput | string | null
    opfFull?: NullableStringFieldUpdateOperationsInput | string | null
    opfShort?: NullableStringFieldUpdateOperationsInput | string | null
    okato?: NullableStringFieldUpdateOperationsInput | string | null
    oktmo?: NullableStringFieldUpdateOperationsInput | string | null
    okpo?: NullableStringFieldUpdateOperationsInput | string | null
    okved?: NullableStringFieldUpdateOperationsInput | string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: NullableIntFieldUpdateOperationsInput | number | null
    revenue?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    taxSystem?: NullableStringFieldUpdateOperationsInput | string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUpdateManyWithoutOrganizationNestedInput
    carts?: CartUpdateOneWithoutOrganizationNestedInput
    counterpartyOf?: CounterpartyUpdateManyWithoutCounterpartyNestedInput
    organizationCounterparties?: CounterpartyUpdateManyWithoutOrganizationNestedInput
    receivedRequests?: CounterpartyRequestUpdateManyWithoutReceiverNestedInput
    sentRequests?: CounterpartyRequestUpdateManyWithoutSenderNestedInput
    employees?: EmployeeUpdateManyWithoutOrganizationNestedInput
    favorites?: FavoritesUpdateManyWithoutOrganizationNestedInput
    receivedMessages?: MessageUpdateManyWithoutReceiverOrganizationNestedInput
    sentMessages?: MessageUpdateManyWithoutSenderOrganizationNestedInput
    products?: ProductUpdateManyWithoutOrganizationNestedInput
    services?: ServiceUpdateManyWithoutOrganizationNestedInput
    users?: UserUpdateManyWithoutOrganizationNestedInput
    logistics?: LogisticsUpdateManyWithoutOrganizationNestedInput
    supplyOrders?: SupplyOrderUpdateManyWithoutOrganizationNestedInput
    partnerSupplyOrders?: SupplyOrderUpdateManyWithoutPartnerNestedInput
    fulfillmentSupplyOrders?: SupplyOrderUpdateManyWithoutFulfillmentCenterNestedInput
    wildberriesSupplies?: WildberriesSupplyUpdateManyWithoutOrganizationNestedInput
    supplySuppliers?: SupplySupplierUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationUncheckedUpdateWithoutSuppliesInput = {
    id?: StringFieldUpdateOperationsInput | string
    inn?: StringFieldUpdateOperationsInput | string
    kpp?: NullableStringFieldUpdateOperationsInput | string | null
    name?: NullableStringFieldUpdateOperationsInput | string | null
    fullName?: NullableStringFieldUpdateOperationsInput | string | null
    ogrn?: NullableStringFieldUpdateOperationsInput | string | null
    ogrnDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    type?: EnumOrganizationTypeFieldUpdateOperationsInput | $Enums.OrganizationType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    address?: NullableStringFieldUpdateOperationsInput | string | null
    addressFull?: NullableStringFieldUpdateOperationsInput | string | null
    status?: NullableStringFieldUpdateOperationsInput | string | null
    actualityDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    registrationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    liquidationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managementName?: NullableStringFieldUpdateOperationsInput | string | null
    managementPost?: NullableStringFieldUpdateOperationsInput | string | null
    opfCode?: NullableStringFieldUpdateOperationsInput | string | null
    opfFull?: NullableStringFieldUpdateOperationsInput | string | null
    opfShort?: NullableStringFieldUpdateOperationsInput | string | null
    okato?: NullableStringFieldUpdateOperationsInput | string | null
    oktmo?: NullableStringFieldUpdateOperationsInput | string | null
    okpo?: NullableStringFieldUpdateOperationsInput | string | null
    okved?: NullableStringFieldUpdateOperationsInput | string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: NullableIntFieldUpdateOperationsInput | number | null
    revenue?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    taxSystem?: NullableStringFieldUpdateOperationsInput | string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUncheckedUpdateManyWithoutOrganizationNestedInput
    carts?: CartUncheckedUpdateOneWithoutOrganizationNestedInput
    counterpartyOf?: CounterpartyUncheckedUpdateManyWithoutCounterpartyNestedInput
    organizationCounterparties?: CounterpartyUncheckedUpdateManyWithoutOrganizationNestedInput
    receivedRequests?: CounterpartyRequestUncheckedUpdateManyWithoutReceiverNestedInput
    sentRequests?: CounterpartyRequestUncheckedUpdateManyWithoutSenderNestedInput
    employees?: EmployeeUncheckedUpdateManyWithoutOrganizationNestedInput
    favorites?: FavoritesUncheckedUpdateManyWithoutOrganizationNestedInput
    receivedMessages?: MessageUncheckedUpdateManyWithoutReceiverOrganizationNestedInput
    sentMessages?: MessageUncheckedUpdateManyWithoutSenderOrganizationNestedInput
    products?: ProductUncheckedUpdateManyWithoutOrganizationNestedInput
    services?: ServiceUncheckedUpdateManyWithoutOrganizationNestedInput
    users?: UserUncheckedUpdateManyWithoutOrganizationNestedInput
    logistics?: LogisticsUncheckedUpdateManyWithoutOrganizationNestedInput
    supplyOrders?: SupplyOrderUncheckedUpdateManyWithoutOrganizationNestedInput
    partnerSupplyOrders?: SupplyOrderUncheckedUpdateManyWithoutPartnerNestedInput
    fulfillmentSupplyOrders?: SupplyOrderUncheckedUpdateManyWithoutFulfillmentCenterNestedInput
    wildberriesSupplies?: WildberriesSupplyUncheckedUpdateManyWithoutOrganizationNestedInput
    supplySuppliers?: SupplySupplierUncheckedUpdateManyWithoutOrganizationNestedInput
  }

  export type ProductCreateWithoutCategoryInput = {
    id?: string
    name: string
    article: string
    description?: string | null
    price: Decimal | DecimalJsLike | number | string
    quantity?: number
    brand?: string | null
    color?: string | null
    size?: string | null
    weight?: Decimal | DecimalJsLike | number | string | null
    dimensions?: string | null
    material?: string | null
    images?: JsonNullValueInput | InputJsonValue
    mainImage?: string | null
    isActive?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    cartItems?: CartItemCreateNestedManyWithoutProductInput
    favorites?: FavoritesCreateNestedManyWithoutProductInput
    supplyOrderItems?: SupplyOrderItemCreateNestedManyWithoutProductInput
    organization: OrganizationCreateNestedOneWithoutProductsInput
  }

  export type ProductUncheckedCreateWithoutCategoryInput = {
    id?: string
    name: string
    article: string
    description?: string | null
    price: Decimal | DecimalJsLike | number | string
    quantity?: number
    brand?: string | null
    color?: string | null
    size?: string | null
    weight?: Decimal | DecimalJsLike | number | string | null
    dimensions?: string | null
    material?: string | null
    images?: JsonNullValueInput | InputJsonValue
    mainImage?: string | null
    isActive?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    organizationId: string
    cartItems?: CartItemUncheckedCreateNestedManyWithoutProductInput
    favorites?: FavoritesUncheckedCreateNestedManyWithoutProductInput
    supplyOrderItems?: SupplyOrderItemUncheckedCreateNestedManyWithoutProductInput
  }

  export type ProductCreateOrConnectWithoutCategoryInput = {
    where: ProductWhereUniqueInput
    create: XOR<ProductCreateWithoutCategoryInput, ProductUncheckedCreateWithoutCategoryInput>
  }

  export type ProductCreateManyCategoryInputEnvelope = {
    data: ProductCreateManyCategoryInput | ProductCreateManyCategoryInput[]
    skipDuplicates?: boolean
  }

  export type ProductUpsertWithWhereUniqueWithoutCategoryInput = {
    where: ProductWhereUniqueInput
    update: XOR<ProductUpdateWithoutCategoryInput, ProductUncheckedUpdateWithoutCategoryInput>
    create: XOR<ProductCreateWithoutCategoryInput, ProductUncheckedCreateWithoutCategoryInput>
  }

  export type ProductUpdateWithWhereUniqueWithoutCategoryInput = {
    where: ProductWhereUniqueInput
    data: XOR<ProductUpdateWithoutCategoryInput, ProductUncheckedUpdateWithoutCategoryInput>
  }

  export type ProductUpdateManyWithWhereWithoutCategoryInput = {
    where: ProductScalarWhereInput
    data: XOR<ProductUpdateManyMutationInput, ProductUncheckedUpdateManyWithoutCategoryInput>
  }

  export type CartItemCreateWithoutProductInput = {
    id?: string
    quantity?: number
    createdAt?: Date | string
    updatedAt?: Date | string
    cart: CartCreateNestedOneWithoutItemsInput
  }

  export type CartItemUncheckedCreateWithoutProductInput = {
    id?: string
    cartId: string
    quantity?: number
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type CartItemCreateOrConnectWithoutProductInput = {
    where: CartItemWhereUniqueInput
    create: XOR<CartItemCreateWithoutProductInput, CartItemUncheckedCreateWithoutProductInput>
  }

  export type CartItemCreateManyProductInputEnvelope = {
    data: CartItemCreateManyProductInput | CartItemCreateManyProductInput[]
    skipDuplicates?: boolean
  }

  export type FavoritesCreateWithoutProductInput = {
    id?: string
    createdAt?: Date | string
    updatedAt?: Date | string
    organization: OrganizationCreateNestedOneWithoutFavoritesInput
  }

  export type FavoritesUncheckedCreateWithoutProductInput = {
    id?: string
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type FavoritesCreateOrConnectWithoutProductInput = {
    where: FavoritesWhereUniqueInput
    create: XOR<FavoritesCreateWithoutProductInput, FavoritesUncheckedCreateWithoutProductInput>
  }

  export type FavoritesCreateManyProductInputEnvelope = {
    data: FavoritesCreateManyProductInput | FavoritesCreateManyProductInput[]
    skipDuplicates?: boolean
  }

  export type SupplyOrderItemCreateWithoutProductInput = {
    id?: string
    quantity: number
    price: Decimal | DecimalJsLike | number | string
    totalPrice: Decimal | DecimalJsLike | number | string
    createdAt?: Date | string
    updatedAt?: Date | string
    supplyOrder: SupplyOrderCreateNestedOneWithoutItemsInput
  }

  export type SupplyOrderItemUncheckedCreateWithoutProductInput = {
    id?: string
    supplyOrderId: string
    quantity: number
    price: Decimal | DecimalJsLike | number | string
    totalPrice: Decimal | DecimalJsLike | number | string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type SupplyOrderItemCreateOrConnectWithoutProductInput = {
    where: SupplyOrderItemWhereUniqueInput
    create: XOR<SupplyOrderItemCreateWithoutProductInput, SupplyOrderItemUncheckedCreateWithoutProductInput>
  }

  export type SupplyOrderItemCreateManyProductInputEnvelope = {
    data: SupplyOrderItemCreateManyProductInput | SupplyOrderItemCreateManyProductInput[]
    skipDuplicates?: boolean
  }

  export type CategoryCreateWithoutProductsInput = {
    id?: string
    name: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type CategoryUncheckedCreateWithoutProductsInput = {
    id?: string
    name: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type CategoryCreateOrConnectWithoutProductsInput = {
    where: CategoryWhereUniqueInput
    create: XOR<CategoryCreateWithoutProductsInput, CategoryUncheckedCreateWithoutProductsInput>
  }

  export type OrganizationCreateWithoutProductsInput = {
    id?: string
    inn: string
    kpp?: string | null
    name?: string | null
    fullName?: string | null
    ogrn?: string | null
    ogrnDate?: Date | string | null
    type: $Enums.OrganizationType
    createdAt?: Date | string
    updatedAt?: Date | string
    address?: string | null
    addressFull?: string | null
    status?: string | null
    actualityDate?: Date | string | null
    registrationDate?: Date | string | null
    liquidationDate?: Date | string | null
    managementName?: string | null
    managementPost?: string | null
    opfCode?: string | null
    opfFull?: string | null
    opfShort?: string | null
    okato?: string | null
    oktmo?: string | null
    okpo?: string | null
    okved?: string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: number | null
    revenue?: bigint | number | null
    taxSystem?: string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyCreateNestedManyWithoutOrganizationInput
    carts?: CartCreateNestedOneWithoutOrganizationInput
    counterpartyOf?: CounterpartyCreateNestedManyWithoutCounterpartyInput
    organizationCounterparties?: CounterpartyCreateNestedManyWithoutOrganizationInput
    receivedRequests?: CounterpartyRequestCreateNestedManyWithoutReceiverInput
    sentRequests?: CounterpartyRequestCreateNestedManyWithoutSenderInput
    employees?: EmployeeCreateNestedManyWithoutOrganizationInput
    favorites?: FavoritesCreateNestedManyWithoutOrganizationInput
    receivedMessages?: MessageCreateNestedManyWithoutReceiverOrganizationInput
    sentMessages?: MessageCreateNestedManyWithoutSenderOrganizationInput
    services?: ServiceCreateNestedManyWithoutOrganizationInput
    supplies?: SupplyCreateNestedManyWithoutOrganizationInput
    users?: UserCreateNestedManyWithoutOrganizationInput
    logistics?: LogisticsCreateNestedManyWithoutOrganizationInput
    supplyOrders?: SupplyOrderCreateNestedManyWithoutOrganizationInput
    partnerSupplyOrders?: SupplyOrderCreateNestedManyWithoutPartnerInput
    fulfillmentSupplyOrders?: SupplyOrderCreateNestedManyWithoutFulfillmentCenterInput
    wildberriesSupplies?: WildberriesSupplyCreateNestedManyWithoutOrganizationInput
    supplySuppliers?: SupplySupplierCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationUncheckedCreateWithoutProductsInput = {
    id?: string
    inn: string
    kpp?: string | null
    name?: string | null
    fullName?: string | null
    ogrn?: string | null
    ogrnDate?: Date | string | null
    type: $Enums.OrganizationType
    createdAt?: Date | string
    updatedAt?: Date | string
    address?: string | null
    addressFull?: string | null
    status?: string | null
    actualityDate?: Date | string | null
    registrationDate?: Date | string | null
    liquidationDate?: Date | string | null
    managementName?: string | null
    managementPost?: string | null
    opfCode?: string | null
    opfFull?: string | null
    opfShort?: string | null
    okato?: string | null
    oktmo?: string | null
    okpo?: string | null
    okved?: string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: number | null
    revenue?: bigint | number | null
    taxSystem?: string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUncheckedCreateNestedManyWithoutOrganizationInput
    carts?: CartUncheckedCreateNestedOneWithoutOrganizationInput
    counterpartyOf?: CounterpartyUncheckedCreateNestedManyWithoutCounterpartyInput
    organizationCounterparties?: CounterpartyUncheckedCreateNestedManyWithoutOrganizationInput
    receivedRequests?: CounterpartyRequestUncheckedCreateNestedManyWithoutReceiverInput
    sentRequests?: CounterpartyRequestUncheckedCreateNestedManyWithoutSenderInput
    employees?: EmployeeUncheckedCreateNestedManyWithoutOrganizationInput
    favorites?: FavoritesUncheckedCreateNestedManyWithoutOrganizationInput
    receivedMessages?: MessageUncheckedCreateNestedManyWithoutReceiverOrganizationInput
    sentMessages?: MessageUncheckedCreateNestedManyWithoutSenderOrganizationInput
    services?: ServiceUncheckedCreateNestedManyWithoutOrganizationInput
    supplies?: SupplyUncheckedCreateNestedManyWithoutOrganizationInput
    users?: UserUncheckedCreateNestedManyWithoutOrganizationInput
    logistics?: LogisticsUncheckedCreateNestedManyWithoutOrganizationInput
    supplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutOrganizationInput
    partnerSupplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutPartnerInput
    fulfillmentSupplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutFulfillmentCenterInput
    wildberriesSupplies?: WildberriesSupplyUncheckedCreateNestedManyWithoutOrganizationInput
    supplySuppliers?: SupplySupplierUncheckedCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationCreateOrConnectWithoutProductsInput = {
    where: OrganizationWhereUniqueInput
    create: XOR<OrganizationCreateWithoutProductsInput, OrganizationUncheckedCreateWithoutProductsInput>
  }

  export type CartItemUpsertWithWhereUniqueWithoutProductInput = {
    where: CartItemWhereUniqueInput
    update: XOR<CartItemUpdateWithoutProductInput, CartItemUncheckedUpdateWithoutProductInput>
    create: XOR<CartItemCreateWithoutProductInput, CartItemUncheckedCreateWithoutProductInput>
  }

  export type CartItemUpdateWithWhereUniqueWithoutProductInput = {
    where: CartItemWhereUniqueInput
    data: XOR<CartItemUpdateWithoutProductInput, CartItemUncheckedUpdateWithoutProductInput>
  }

  export type CartItemUpdateManyWithWhereWithoutProductInput = {
    where: CartItemScalarWhereInput
    data: XOR<CartItemUpdateManyMutationInput, CartItemUncheckedUpdateManyWithoutProductInput>
  }

  export type CartItemScalarWhereInput = {
    AND?: CartItemScalarWhereInput | CartItemScalarWhereInput[]
    OR?: CartItemScalarWhereInput[]
    NOT?: CartItemScalarWhereInput | CartItemScalarWhereInput[]
    id?: StringFilter<"CartItem"> | string
    cartId?: StringFilter<"CartItem"> | string
    productId?: StringFilter<"CartItem"> | string
    quantity?: IntFilter<"CartItem"> | number
    createdAt?: DateTimeFilter<"CartItem"> | Date | string
    updatedAt?: DateTimeFilter<"CartItem"> | Date | string
  }

  export type FavoritesUpsertWithWhereUniqueWithoutProductInput = {
    where: FavoritesWhereUniqueInput
    update: XOR<FavoritesUpdateWithoutProductInput, FavoritesUncheckedUpdateWithoutProductInput>
    create: XOR<FavoritesCreateWithoutProductInput, FavoritesUncheckedCreateWithoutProductInput>
  }

  export type FavoritesUpdateWithWhereUniqueWithoutProductInput = {
    where: FavoritesWhereUniqueInput
    data: XOR<FavoritesUpdateWithoutProductInput, FavoritesUncheckedUpdateWithoutProductInput>
  }

  export type FavoritesUpdateManyWithWhereWithoutProductInput = {
    where: FavoritesScalarWhereInput
    data: XOR<FavoritesUpdateManyMutationInput, FavoritesUncheckedUpdateManyWithoutProductInput>
  }

  export type SupplyOrderItemUpsertWithWhereUniqueWithoutProductInput = {
    where: SupplyOrderItemWhereUniqueInput
    update: XOR<SupplyOrderItemUpdateWithoutProductInput, SupplyOrderItemUncheckedUpdateWithoutProductInput>
    create: XOR<SupplyOrderItemCreateWithoutProductInput, SupplyOrderItemUncheckedCreateWithoutProductInput>
  }

  export type SupplyOrderItemUpdateWithWhereUniqueWithoutProductInput = {
    where: SupplyOrderItemWhereUniqueInput
    data: XOR<SupplyOrderItemUpdateWithoutProductInput, SupplyOrderItemUncheckedUpdateWithoutProductInput>
  }

  export type SupplyOrderItemUpdateManyWithWhereWithoutProductInput = {
    where: SupplyOrderItemScalarWhereInput
    data: XOR<SupplyOrderItemUpdateManyMutationInput, SupplyOrderItemUncheckedUpdateManyWithoutProductInput>
  }

  export type SupplyOrderItemScalarWhereInput = {
    AND?: SupplyOrderItemScalarWhereInput | SupplyOrderItemScalarWhereInput[]
    OR?: SupplyOrderItemScalarWhereInput[]
    NOT?: SupplyOrderItemScalarWhereInput | SupplyOrderItemScalarWhereInput[]
    id?: StringFilter<"SupplyOrderItem"> | string
    supplyOrderId?: StringFilter<"SupplyOrderItem"> | string
    productId?: StringFilter<"SupplyOrderItem"> | string
    quantity?: IntFilter<"SupplyOrderItem"> | number
    price?: DecimalFilter<"SupplyOrderItem"> | Decimal | DecimalJsLike | number | string
    totalPrice?: DecimalFilter<"SupplyOrderItem"> | Decimal | DecimalJsLike | number | string
    createdAt?: DateTimeFilter<"SupplyOrderItem"> | Date | string
    updatedAt?: DateTimeFilter<"SupplyOrderItem"> | Date | string
  }

  export type CategoryUpsertWithoutProductsInput = {
    update: XOR<CategoryUpdateWithoutProductsInput, CategoryUncheckedUpdateWithoutProductsInput>
    create: XOR<CategoryCreateWithoutProductsInput, CategoryUncheckedCreateWithoutProductsInput>
    where?: CategoryWhereInput
  }

  export type CategoryUpdateToOneWithWhereWithoutProductsInput = {
    where?: CategoryWhereInput
    data: XOR<CategoryUpdateWithoutProductsInput, CategoryUncheckedUpdateWithoutProductsInput>
  }

  export type CategoryUpdateWithoutProductsInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type CategoryUncheckedUpdateWithoutProductsInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OrganizationUpsertWithoutProductsInput = {
    update: XOR<OrganizationUpdateWithoutProductsInput, OrganizationUncheckedUpdateWithoutProductsInput>
    create: XOR<OrganizationCreateWithoutProductsInput, OrganizationUncheckedCreateWithoutProductsInput>
    where?: OrganizationWhereInput
  }

  export type OrganizationUpdateToOneWithWhereWithoutProductsInput = {
    where?: OrganizationWhereInput
    data: XOR<OrganizationUpdateWithoutProductsInput, OrganizationUncheckedUpdateWithoutProductsInput>
  }

  export type OrganizationUpdateWithoutProductsInput = {
    id?: StringFieldUpdateOperationsInput | string
    inn?: StringFieldUpdateOperationsInput | string
    kpp?: NullableStringFieldUpdateOperationsInput | string | null
    name?: NullableStringFieldUpdateOperationsInput | string | null
    fullName?: NullableStringFieldUpdateOperationsInput | string | null
    ogrn?: NullableStringFieldUpdateOperationsInput | string | null
    ogrnDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    type?: EnumOrganizationTypeFieldUpdateOperationsInput | $Enums.OrganizationType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    address?: NullableStringFieldUpdateOperationsInput | string | null
    addressFull?: NullableStringFieldUpdateOperationsInput | string | null
    status?: NullableStringFieldUpdateOperationsInput | string | null
    actualityDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    registrationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    liquidationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managementName?: NullableStringFieldUpdateOperationsInput | string | null
    managementPost?: NullableStringFieldUpdateOperationsInput | string | null
    opfCode?: NullableStringFieldUpdateOperationsInput | string | null
    opfFull?: NullableStringFieldUpdateOperationsInput | string | null
    opfShort?: NullableStringFieldUpdateOperationsInput | string | null
    okato?: NullableStringFieldUpdateOperationsInput | string | null
    oktmo?: NullableStringFieldUpdateOperationsInput | string | null
    okpo?: NullableStringFieldUpdateOperationsInput | string | null
    okved?: NullableStringFieldUpdateOperationsInput | string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: NullableIntFieldUpdateOperationsInput | number | null
    revenue?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    taxSystem?: NullableStringFieldUpdateOperationsInput | string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUpdateManyWithoutOrganizationNestedInput
    carts?: CartUpdateOneWithoutOrganizationNestedInput
    counterpartyOf?: CounterpartyUpdateManyWithoutCounterpartyNestedInput
    organizationCounterparties?: CounterpartyUpdateManyWithoutOrganizationNestedInput
    receivedRequests?: CounterpartyRequestUpdateManyWithoutReceiverNestedInput
    sentRequests?: CounterpartyRequestUpdateManyWithoutSenderNestedInput
    employees?: EmployeeUpdateManyWithoutOrganizationNestedInput
    favorites?: FavoritesUpdateManyWithoutOrganizationNestedInput
    receivedMessages?: MessageUpdateManyWithoutReceiverOrganizationNestedInput
    sentMessages?: MessageUpdateManyWithoutSenderOrganizationNestedInput
    services?: ServiceUpdateManyWithoutOrganizationNestedInput
    supplies?: SupplyUpdateManyWithoutOrganizationNestedInput
    users?: UserUpdateManyWithoutOrganizationNestedInput
    logistics?: LogisticsUpdateManyWithoutOrganizationNestedInput
    supplyOrders?: SupplyOrderUpdateManyWithoutOrganizationNestedInput
    partnerSupplyOrders?: SupplyOrderUpdateManyWithoutPartnerNestedInput
    fulfillmentSupplyOrders?: SupplyOrderUpdateManyWithoutFulfillmentCenterNestedInput
    wildberriesSupplies?: WildberriesSupplyUpdateManyWithoutOrganizationNestedInput
    supplySuppliers?: SupplySupplierUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationUncheckedUpdateWithoutProductsInput = {
    id?: StringFieldUpdateOperationsInput | string
    inn?: StringFieldUpdateOperationsInput | string
    kpp?: NullableStringFieldUpdateOperationsInput | string | null
    name?: NullableStringFieldUpdateOperationsInput | string | null
    fullName?: NullableStringFieldUpdateOperationsInput | string | null
    ogrn?: NullableStringFieldUpdateOperationsInput | string | null
    ogrnDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    type?: EnumOrganizationTypeFieldUpdateOperationsInput | $Enums.OrganizationType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    address?: NullableStringFieldUpdateOperationsInput | string | null
    addressFull?: NullableStringFieldUpdateOperationsInput | string | null
    status?: NullableStringFieldUpdateOperationsInput | string | null
    actualityDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    registrationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    liquidationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managementName?: NullableStringFieldUpdateOperationsInput | string | null
    managementPost?: NullableStringFieldUpdateOperationsInput | string | null
    opfCode?: NullableStringFieldUpdateOperationsInput | string | null
    opfFull?: NullableStringFieldUpdateOperationsInput | string | null
    opfShort?: NullableStringFieldUpdateOperationsInput | string | null
    okato?: NullableStringFieldUpdateOperationsInput | string | null
    oktmo?: NullableStringFieldUpdateOperationsInput | string | null
    okpo?: NullableStringFieldUpdateOperationsInput | string | null
    okved?: NullableStringFieldUpdateOperationsInput | string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: NullableIntFieldUpdateOperationsInput | number | null
    revenue?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    taxSystem?: NullableStringFieldUpdateOperationsInput | string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUncheckedUpdateManyWithoutOrganizationNestedInput
    carts?: CartUncheckedUpdateOneWithoutOrganizationNestedInput
    counterpartyOf?: CounterpartyUncheckedUpdateManyWithoutCounterpartyNestedInput
    organizationCounterparties?: CounterpartyUncheckedUpdateManyWithoutOrganizationNestedInput
    receivedRequests?: CounterpartyRequestUncheckedUpdateManyWithoutReceiverNestedInput
    sentRequests?: CounterpartyRequestUncheckedUpdateManyWithoutSenderNestedInput
    employees?: EmployeeUncheckedUpdateManyWithoutOrganizationNestedInput
    favorites?: FavoritesUncheckedUpdateManyWithoutOrganizationNestedInput
    receivedMessages?: MessageUncheckedUpdateManyWithoutReceiverOrganizationNestedInput
    sentMessages?: MessageUncheckedUpdateManyWithoutSenderOrganizationNestedInput
    services?: ServiceUncheckedUpdateManyWithoutOrganizationNestedInput
    supplies?: SupplyUncheckedUpdateManyWithoutOrganizationNestedInput
    users?: UserUncheckedUpdateManyWithoutOrganizationNestedInput
    logistics?: LogisticsUncheckedUpdateManyWithoutOrganizationNestedInput
    supplyOrders?: SupplyOrderUncheckedUpdateManyWithoutOrganizationNestedInput
    partnerSupplyOrders?: SupplyOrderUncheckedUpdateManyWithoutPartnerNestedInput
    fulfillmentSupplyOrders?: SupplyOrderUncheckedUpdateManyWithoutFulfillmentCenterNestedInput
    wildberriesSupplies?: WildberriesSupplyUncheckedUpdateManyWithoutOrganizationNestedInput
    supplySuppliers?: SupplySupplierUncheckedUpdateManyWithoutOrganizationNestedInput
  }

  export type CartItemCreateWithoutCartInput = {
    id?: string
    quantity?: number
    createdAt?: Date | string
    updatedAt?: Date | string
    product: ProductCreateNestedOneWithoutCartItemsInput
  }

  export type CartItemUncheckedCreateWithoutCartInput = {
    id?: string
    productId: string
    quantity?: number
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type CartItemCreateOrConnectWithoutCartInput = {
    where: CartItemWhereUniqueInput
    create: XOR<CartItemCreateWithoutCartInput, CartItemUncheckedCreateWithoutCartInput>
  }

  export type CartItemCreateManyCartInputEnvelope = {
    data: CartItemCreateManyCartInput | CartItemCreateManyCartInput[]
    skipDuplicates?: boolean
  }

  export type OrganizationCreateWithoutCartsInput = {
    id?: string
    inn: string
    kpp?: string | null
    name?: string | null
    fullName?: string | null
    ogrn?: string | null
    ogrnDate?: Date | string | null
    type: $Enums.OrganizationType
    createdAt?: Date | string
    updatedAt?: Date | string
    address?: string | null
    addressFull?: string | null
    status?: string | null
    actualityDate?: Date | string | null
    registrationDate?: Date | string | null
    liquidationDate?: Date | string | null
    managementName?: string | null
    managementPost?: string | null
    opfCode?: string | null
    opfFull?: string | null
    opfShort?: string | null
    okato?: string | null
    oktmo?: string | null
    okpo?: string | null
    okved?: string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: number | null
    revenue?: bigint | number | null
    taxSystem?: string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyCreateNestedManyWithoutOrganizationInput
    counterpartyOf?: CounterpartyCreateNestedManyWithoutCounterpartyInput
    organizationCounterparties?: CounterpartyCreateNestedManyWithoutOrganizationInput
    receivedRequests?: CounterpartyRequestCreateNestedManyWithoutReceiverInput
    sentRequests?: CounterpartyRequestCreateNestedManyWithoutSenderInput
    employees?: EmployeeCreateNestedManyWithoutOrganizationInput
    favorites?: FavoritesCreateNestedManyWithoutOrganizationInput
    receivedMessages?: MessageCreateNestedManyWithoutReceiverOrganizationInput
    sentMessages?: MessageCreateNestedManyWithoutSenderOrganizationInput
    products?: ProductCreateNestedManyWithoutOrganizationInput
    services?: ServiceCreateNestedManyWithoutOrganizationInput
    supplies?: SupplyCreateNestedManyWithoutOrganizationInput
    users?: UserCreateNestedManyWithoutOrganizationInput
    logistics?: LogisticsCreateNestedManyWithoutOrganizationInput
    supplyOrders?: SupplyOrderCreateNestedManyWithoutOrganizationInput
    partnerSupplyOrders?: SupplyOrderCreateNestedManyWithoutPartnerInput
    fulfillmentSupplyOrders?: SupplyOrderCreateNestedManyWithoutFulfillmentCenterInput
    wildberriesSupplies?: WildberriesSupplyCreateNestedManyWithoutOrganizationInput
    supplySuppliers?: SupplySupplierCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationUncheckedCreateWithoutCartsInput = {
    id?: string
    inn: string
    kpp?: string | null
    name?: string | null
    fullName?: string | null
    ogrn?: string | null
    ogrnDate?: Date | string | null
    type: $Enums.OrganizationType
    createdAt?: Date | string
    updatedAt?: Date | string
    address?: string | null
    addressFull?: string | null
    status?: string | null
    actualityDate?: Date | string | null
    registrationDate?: Date | string | null
    liquidationDate?: Date | string | null
    managementName?: string | null
    managementPost?: string | null
    opfCode?: string | null
    opfFull?: string | null
    opfShort?: string | null
    okato?: string | null
    oktmo?: string | null
    okpo?: string | null
    okved?: string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: number | null
    revenue?: bigint | number | null
    taxSystem?: string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUncheckedCreateNestedManyWithoutOrganizationInput
    counterpartyOf?: CounterpartyUncheckedCreateNestedManyWithoutCounterpartyInput
    organizationCounterparties?: CounterpartyUncheckedCreateNestedManyWithoutOrganizationInput
    receivedRequests?: CounterpartyRequestUncheckedCreateNestedManyWithoutReceiverInput
    sentRequests?: CounterpartyRequestUncheckedCreateNestedManyWithoutSenderInput
    employees?: EmployeeUncheckedCreateNestedManyWithoutOrganizationInput
    favorites?: FavoritesUncheckedCreateNestedManyWithoutOrganizationInput
    receivedMessages?: MessageUncheckedCreateNestedManyWithoutReceiverOrganizationInput
    sentMessages?: MessageUncheckedCreateNestedManyWithoutSenderOrganizationInput
    products?: ProductUncheckedCreateNestedManyWithoutOrganizationInput
    services?: ServiceUncheckedCreateNestedManyWithoutOrganizationInput
    supplies?: SupplyUncheckedCreateNestedManyWithoutOrganizationInput
    users?: UserUncheckedCreateNestedManyWithoutOrganizationInput
    logistics?: LogisticsUncheckedCreateNestedManyWithoutOrganizationInput
    supplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutOrganizationInput
    partnerSupplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutPartnerInput
    fulfillmentSupplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutFulfillmentCenterInput
    wildberriesSupplies?: WildberriesSupplyUncheckedCreateNestedManyWithoutOrganizationInput
    supplySuppliers?: SupplySupplierUncheckedCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationCreateOrConnectWithoutCartsInput = {
    where: OrganizationWhereUniqueInput
    create: XOR<OrganizationCreateWithoutCartsInput, OrganizationUncheckedCreateWithoutCartsInput>
  }

  export type CartItemUpsertWithWhereUniqueWithoutCartInput = {
    where: CartItemWhereUniqueInput
    update: XOR<CartItemUpdateWithoutCartInput, CartItemUncheckedUpdateWithoutCartInput>
    create: XOR<CartItemCreateWithoutCartInput, CartItemUncheckedCreateWithoutCartInput>
  }

  export type CartItemUpdateWithWhereUniqueWithoutCartInput = {
    where: CartItemWhereUniqueInput
    data: XOR<CartItemUpdateWithoutCartInput, CartItemUncheckedUpdateWithoutCartInput>
  }

  export type CartItemUpdateManyWithWhereWithoutCartInput = {
    where: CartItemScalarWhereInput
    data: XOR<CartItemUpdateManyMutationInput, CartItemUncheckedUpdateManyWithoutCartInput>
  }

  export type OrganizationUpsertWithoutCartsInput = {
    update: XOR<OrganizationUpdateWithoutCartsInput, OrganizationUncheckedUpdateWithoutCartsInput>
    create: XOR<OrganizationCreateWithoutCartsInput, OrganizationUncheckedCreateWithoutCartsInput>
    where?: OrganizationWhereInput
  }

  export type OrganizationUpdateToOneWithWhereWithoutCartsInput = {
    where?: OrganizationWhereInput
    data: XOR<OrganizationUpdateWithoutCartsInput, OrganizationUncheckedUpdateWithoutCartsInput>
  }

  export type OrganizationUpdateWithoutCartsInput = {
    id?: StringFieldUpdateOperationsInput | string
    inn?: StringFieldUpdateOperationsInput | string
    kpp?: NullableStringFieldUpdateOperationsInput | string | null
    name?: NullableStringFieldUpdateOperationsInput | string | null
    fullName?: NullableStringFieldUpdateOperationsInput | string | null
    ogrn?: NullableStringFieldUpdateOperationsInput | string | null
    ogrnDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    type?: EnumOrganizationTypeFieldUpdateOperationsInput | $Enums.OrganizationType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    address?: NullableStringFieldUpdateOperationsInput | string | null
    addressFull?: NullableStringFieldUpdateOperationsInput | string | null
    status?: NullableStringFieldUpdateOperationsInput | string | null
    actualityDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    registrationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    liquidationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managementName?: NullableStringFieldUpdateOperationsInput | string | null
    managementPost?: NullableStringFieldUpdateOperationsInput | string | null
    opfCode?: NullableStringFieldUpdateOperationsInput | string | null
    opfFull?: NullableStringFieldUpdateOperationsInput | string | null
    opfShort?: NullableStringFieldUpdateOperationsInput | string | null
    okato?: NullableStringFieldUpdateOperationsInput | string | null
    oktmo?: NullableStringFieldUpdateOperationsInput | string | null
    okpo?: NullableStringFieldUpdateOperationsInput | string | null
    okved?: NullableStringFieldUpdateOperationsInput | string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: NullableIntFieldUpdateOperationsInput | number | null
    revenue?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    taxSystem?: NullableStringFieldUpdateOperationsInput | string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUpdateManyWithoutOrganizationNestedInput
    counterpartyOf?: CounterpartyUpdateManyWithoutCounterpartyNestedInput
    organizationCounterparties?: CounterpartyUpdateManyWithoutOrganizationNestedInput
    receivedRequests?: CounterpartyRequestUpdateManyWithoutReceiverNestedInput
    sentRequests?: CounterpartyRequestUpdateManyWithoutSenderNestedInput
    employees?: EmployeeUpdateManyWithoutOrganizationNestedInput
    favorites?: FavoritesUpdateManyWithoutOrganizationNestedInput
    receivedMessages?: MessageUpdateManyWithoutReceiverOrganizationNestedInput
    sentMessages?: MessageUpdateManyWithoutSenderOrganizationNestedInput
    products?: ProductUpdateManyWithoutOrganizationNestedInput
    services?: ServiceUpdateManyWithoutOrganizationNestedInput
    supplies?: SupplyUpdateManyWithoutOrganizationNestedInput
    users?: UserUpdateManyWithoutOrganizationNestedInput
    logistics?: LogisticsUpdateManyWithoutOrganizationNestedInput
    supplyOrders?: SupplyOrderUpdateManyWithoutOrganizationNestedInput
    partnerSupplyOrders?: SupplyOrderUpdateManyWithoutPartnerNestedInput
    fulfillmentSupplyOrders?: SupplyOrderUpdateManyWithoutFulfillmentCenterNestedInput
    wildberriesSupplies?: WildberriesSupplyUpdateManyWithoutOrganizationNestedInput
    supplySuppliers?: SupplySupplierUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationUncheckedUpdateWithoutCartsInput = {
    id?: StringFieldUpdateOperationsInput | string
    inn?: StringFieldUpdateOperationsInput | string
    kpp?: NullableStringFieldUpdateOperationsInput | string | null
    name?: NullableStringFieldUpdateOperationsInput | string | null
    fullName?: NullableStringFieldUpdateOperationsInput | string | null
    ogrn?: NullableStringFieldUpdateOperationsInput | string | null
    ogrnDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    type?: EnumOrganizationTypeFieldUpdateOperationsInput | $Enums.OrganizationType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    address?: NullableStringFieldUpdateOperationsInput | string | null
    addressFull?: NullableStringFieldUpdateOperationsInput | string | null
    status?: NullableStringFieldUpdateOperationsInput | string | null
    actualityDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    registrationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    liquidationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managementName?: NullableStringFieldUpdateOperationsInput | string | null
    managementPost?: NullableStringFieldUpdateOperationsInput | string | null
    opfCode?: NullableStringFieldUpdateOperationsInput | string | null
    opfFull?: NullableStringFieldUpdateOperationsInput | string | null
    opfShort?: NullableStringFieldUpdateOperationsInput | string | null
    okato?: NullableStringFieldUpdateOperationsInput | string | null
    oktmo?: NullableStringFieldUpdateOperationsInput | string | null
    okpo?: NullableStringFieldUpdateOperationsInput | string | null
    okved?: NullableStringFieldUpdateOperationsInput | string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: NullableIntFieldUpdateOperationsInput | number | null
    revenue?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    taxSystem?: NullableStringFieldUpdateOperationsInput | string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUncheckedUpdateManyWithoutOrganizationNestedInput
    counterpartyOf?: CounterpartyUncheckedUpdateManyWithoutCounterpartyNestedInput
    organizationCounterparties?: CounterpartyUncheckedUpdateManyWithoutOrganizationNestedInput
    receivedRequests?: CounterpartyRequestUncheckedUpdateManyWithoutReceiverNestedInput
    sentRequests?: CounterpartyRequestUncheckedUpdateManyWithoutSenderNestedInput
    employees?: EmployeeUncheckedUpdateManyWithoutOrganizationNestedInput
    favorites?: FavoritesUncheckedUpdateManyWithoutOrganizationNestedInput
    receivedMessages?: MessageUncheckedUpdateManyWithoutReceiverOrganizationNestedInput
    sentMessages?: MessageUncheckedUpdateManyWithoutSenderOrganizationNestedInput
    products?: ProductUncheckedUpdateManyWithoutOrganizationNestedInput
    services?: ServiceUncheckedUpdateManyWithoutOrganizationNestedInput
    supplies?: SupplyUncheckedUpdateManyWithoutOrganizationNestedInput
    users?: UserUncheckedUpdateManyWithoutOrganizationNestedInput
    logistics?: LogisticsUncheckedUpdateManyWithoutOrganizationNestedInput
    supplyOrders?: SupplyOrderUncheckedUpdateManyWithoutOrganizationNestedInput
    partnerSupplyOrders?: SupplyOrderUncheckedUpdateManyWithoutPartnerNestedInput
    fulfillmentSupplyOrders?: SupplyOrderUncheckedUpdateManyWithoutFulfillmentCenterNestedInput
    wildberriesSupplies?: WildberriesSupplyUncheckedUpdateManyWithoutOrganizationNestedInput
    supplySuppliers?: SupplySupplierUncheckedUpdateManyWithoutOrganizationNestedInput
  }

  export type CartCreateWithoutItemsInput = {
    id?: string
    createdAt?: Date | string
    updatedAt?: Date | string
    organization: OrganizationCreateNestedOneWithoutCartsInput
  }

  export type CartUncheckedCreateWithoutItemsInput = {
    id?: string
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type CartCreateOrConnectWithoutItemsInput = {
    where: CartWhereUniqueInput
    create: XOR<CartCreateWithoutItemsInput, CartUncheckedCreateWithoutItemsInput>
  }

  export type ProductCreateWithoutCartItemsInput = {
    id?: string
    name: string
    article: string
    description?: string | null
    price: Decimal | DecimalJsLike | number | string
    quantity?: number
    brand?: string | null
    color?: string | null
    size?: string | null
    weight?: Decimal | DecimalJsLike | number | string | null
    dimensions?: string | null
    material?: string | null
    images?: JsonNullValueInput | InputJsonValue
    mainImage?: string | null
    isActive?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    favorites?: FavoritesCreateNestedManyWithoutProductInput
    supplyOrderItems?: SupplyOrderItemCreateNestedManyWithoutProductInput
    category?: CategoryCreateNestedOneWithoutProductsInput
    organization: OrganizationCreateNestedOneWithoutProductsInput
  }

  export type ProductUncheckedCreateWithoutCartItemsInput = {
    id?: string
    name: string
    article: string
    description?: string | null
    price: Decimal | DecimalJsLike | number | string
    quantity?: number
    categoryId?: string | null
    brand?: string | null
    color?: string | null
    size?: string | null
    weight?: Decimal | DecimalJsLike | number | string | null
    dimensions?: string | null
    material?: string | null
    images?: JsonNullValueInput | InputJsonValue
    mainImage?: string | null
    isActive?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    organizationId: string
    favorites?: FavoritesUncheckedCreateNestedManyWithoutProductInput
    supplyOrderItems?: SupplyOrderItemUncheckedCreateNestedManyWithoutProductInput
  }

  export type ProductCreateOrConnectWithoutCartItemsInput = {
    where: ProductWhereUniqueInput
    create: XOR<ProductCreateWithoutCartItemsInput, ProductUncheckedCreateWithoutCartItemsInput>
  }

  export type CartUpsertWithoutItemsInput = {
    update: XOR<CartUpdateWithoutItemsInput, CartUncheckedUpdateWithoutItemsInput>
    create: XOR<CartCreateWithoutItemsInput, CartUncheckedCreateWithoutItemsInput>
    where?: CartWhereInput
  }

  export type CartUpdateToOneWithWhereWithoutItemsInput = {
    where?: CartWhereInput
    data: XOR<CartUpdateWithoutItemsInput, CartUncheckedUpdateWithoutItemsInput>
  }

  export type CartUpdateWithoutItemsInput = {
    id?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organization?: OrganizationUpdateOneRequiredWithoutCartsNestedInput
  }

  export type CartUncheckedUpdateWithoutItemsInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ProductUpsertWithoutCartItemsInput = {
    update: XOR<ProductUpdateWithoutCartItemsInput, ProductUncheckedUpdateWithoutCartItemsInput>
    create: XOR<ProductCreateWithoutCartItemsInput, ProductUncheckedCreateWithoutCartItemsInput>
    where?: ProductWhereInput
  }

  export type ProductUpdateToOneWithWhereWithoutCartItemsInput = {
    where?: ProductWhereInput
    data: XOR<ProductUpdateWithoutCartItemsInput, ProductUncheckedUpdateWithoutCartItemsInput>
  }

  export type ProductUpdateWithoutCartItemsInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    article?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    price?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    quantity?: IntFieldUpdateOperationsInput | number
    brand?: NullableStringFieldUpdateOperationsInput | string | null
    color?: NullableStringFieldUpdateOperationsInput | string | null
    size?: NullableStringFieldUpdateOperationsInput | string | null
    weight?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    dimensions?: NullableStringFieldUpdateOperationsInput | string | null
    material?: NullableStringFieldUpdateOperationsInput | string | null
    images?: JsonNullValueInput | InputJsonValue
    mainImage?: NullableStringFieldUpdateOperationsInput | string | null
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    favorites?: FavoritesUpdateManyWithoutProductNestedInput
    supplyOrderItems?: SupplyOrderItemUpdateManyWithoutProductNestedInput
    category?: CategoryUpdateOneWithoutProductsNestedInput
    organization?: OrganizationUpdateOneRequiredWithoutProductsNestedInput
  }

  export type ProductUncheckedUpdateWithoutCartItemsInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    article?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    price?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    quantity?: IntFieldUpdateOperationsInput | number
    categoryId?: NullableStringFieldUpdateOperationsInput | string | null
    brand?: NullableStringFieldUpdateOperationsInput | string | null
    color?: NullableStringFieldUpdateOperationsInput | string | null
    size?: NullableStringFieldUpdateOperationsInput | string | null
    weight?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    dimensions?: NullableStringFieldUpdateOperationsInput | string | null
    material?: NullableStringFieldUpdateOperationsInput | string | null
    images?: JsonNullValueInput | InputJsonValue
    mainImage?: NullableStringFieldUpdateOperationsInput | string | null
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organizationId?: StringFieldUpdateOperationsInput | string
    favorites?: FavoritesUncheckedUpdateManyWithoutProductNestedInput
    supplyOrderItems?: SupplyOrderItemUncheckedUpdateManyWithoutProductNestedInput
  }

  export type OrganizationCreateWithoutFavoritesInput = {
    id?: string
    inn: string
    kpp?: string | null
    name?: string | null
    fullName?: string | null
    ogrn?: string | null
    ogrnDate?: Date | string | null
    type: $Enums.OrganizationType
    createdAt?: Date | string
    updatedAt?: Date | string
    address?: string | null
    addressFull?: string | null
    status?: string | null
    actualityDate?: Date | string | null
    registrationDate?: Date | string | null
    liquidationDate?: Date | string | null
    managementName?: string | null
    managementPost?: string | null
    opfCode?: string | null
    opfFull?: string | null
    opfShort?: string | null
    okato?: string | null
    oktmo?: string | null
    okpo?: string | null
    okved?: string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: number | null
    revenue?: bigint | number | null
    taxSystem?: string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyCreateNestedManyWithoutOrganizationInput
    carts?: CartCreateNestedOneWithoutOrganizationInput
    counterpartyOf?: CounterpartyCreateNestedManyWithoutCounterpartyInput
    organizationCounterparties?: CounterpartyCreateNestedManyWithoutOrganizationInput
    receivedRequests?: CounterpartyRequestCreateNestedManyWithoutReceiverInput
    sentRequests?: CounterpartyRequestCreateNestedManyWithoutSenderInput
    employees?: EmployeeCreateNestedManyWithoutOrganizationInput
    receivedMessages?: MessageCreateNestedManyWithoutReceiverOrganizationInput
    sentMessages?: MessageCreateNestedManyWithoutSenderOrganizationInput
    products?: ProductCreateNestedManyWithoutOrganizationInput
    services?: ServiceCreateNestedManyWithoutOrganizationInput
    supplies?: SupplyCreateNestedManyWithoutOrganizationInput
    users?: UserCreateNestedManyWithoutOrganizationInput
    logistics?: LogisticsCreateNestedManyWithoutOrganizationInput
    supplyOrders?: SupplyOrderCreateNestedManyWithoutOrganizationInput
    partnerSupplyOrders?: SupplyOrderCreateNestedManyWithoutPartnerInput
    fulfillmentSupplyOrders?: SupplyOrderCreateNestedManyWithoutFulfillmentCenterInput
    wildberriesSupplies?: WildberriesSupplyCreateNestedManyWithoutOrganizationInput
    supplySuppliers?: SupplySupplierCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationUncheckedCreateWithoutFavoritesInput = {
    id?: string
    inn: string
    kpp?: string | null
    name?: string | null
    fullName?: string | null
    ogrn?: string | null
    ogrnDate?: Date | string | null
    type: $Enums.OrganizationType
    createdAt?: Date | string
    updatedAt?: Date | string
    address?: string | null
    addressFull?: string | null
    status?: string | null
    actualityDate?: Date | string | null
    registrationDate?: Date | string | null
    liquidationDate?: Date | string | null
    managementName?: string | null
    managementPost?: string | null
    opfCode?: string | null
    opfFull?: string | null
    opfShort?: string | null
    okato?: string | null
    oktmo?: string | null
    okpo?: string | null
    okved?: string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: number | null
    revenue?: bigint | number | null
    taxSystem?: string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUncheckedCreateNestedManyWithoutOrganizationInput
    carts?: CartUncheckedCreateNestedOneWithoutOrganizationInput
    counterpartyOf?: CounterpartyUncheckedCreateNestedManyWithoutCounterpartyInput
    organizationCounterparties?: CounterpartyUncheckedCreateNestedManyWithoutOrganizationInput
    receivedRequests?: CounterpartyRequestUncheckedCreateNestedManyWithoutReceiverInput
    sentRequests?: CounterpartyRequestUncheckedCreateNestedManyWithoutSenderInput
    employees?: EmployeeUncheckedCreateNestedManyWithoutOrganizationInput
    receivedMessages?: MessageUncheckedCreateNestedManyWithoutReceiverOrganizationInput
    sentMessages?: MessageUncheckedCreateNestedManyWithoutSenderOrganizationInput
    products?: ProductUncheckedCreateNestedManyWithoutOrganizationInput
    services?: ServiceUncheckedCreateNestedManyWithoutOrganizationInput
    supplies?: SupplyUncheckedCreateNestedManyWithoutOrganizationInput
    users?: UserUncheckedCreateNestedManyWithoutOrganizationInput
    logistics?: LogisticsUncheckedCreateNestedManyWithoutOrganizationInput
    supplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutOrganizationInput
    partnerSupplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutPartnerInput
    fulfillmentSupplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutFulfillmentCenterInput
    wildberriesSupplies?: WildberriesSupplyUncheckedCreateNestedManyWithoutOrganizationInput
    supplySuppliers?: SupplySupplierUncheckedCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationCreateOrConnectWithoutFavoritesInput = {
    where: OrganizationWhereUniqueInput
    create: XOR<OrganizationCreateWithoutFavoritesInput, OrganizationUncheckedCreateWithoutFavoritesInput>
  }

  export type ProductCreateWithoutFavoritesInput = {
    id?: string
    name: string
    article: string
    description?: string | null
    price: Decimal | DecimalJsLike | number | string
    quantity?: number
    brand?: string | null
    color?: string | null
    size?: string | null
    weight?: Decimal | DecimalJsLike | number | string | null
    dimensions?: string | null
    material?: string | null
    images?: JsonNullValueInput | InputJsonValue
    mainImage?: string | null
    isActive?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    cartItems?: CartItemCreateNestedManyWithoutProductInput
    supplyOrderItems?: SupplyOrderItemCreateNestedManyWithoutProductInput
    category?: CategoryCreateNestedOneWithoutProductsInput
    organization: OrganizationCreateNestedOneWithoutProductsInput
  }

  export type ProductUncheckedCreateWithoutFavoritesInput = {
    id?: string
    name: string
    article: string
    description?: string | null
    price: Decimal | DecimalJsLike | number | string
    quantity?: number
    categoryId?: string | null
    brand?: string | null
    color?: string | null
    size?: string | null
    weight?: Decimal | DecimalJsLike | number | string | null
    dimensions?: string | null
    material?: string | null
    images?: JsonNullValueInput | InputJsonValue
    mainImage?: string | null
    isActive?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    organizationId: string
    cartItems?: CartItemUncheckedCreateNestedManyWithoutProductInput
    supplyOrderItems?: SupplyOrderItemUncheckedCreateNestedManyWithoutProductInput
  }

  export type ProductCreateOrConnectWithoutFavoritesInput = {
    where: ProductWhereUniqueInput
    create: XOR<ProductCreateWithoutFavoritesInput, ProductUncheckedCreateWithoutFavoritesInput>
  }

  export type OrganizationUpsertWithoutFavoritesInput = {
    update: XOR<OrganizationUpdateWithoutFavoritesInput, OrganizationUncheckedUpdateWithoutFavoritesInput>
    create: XOR<OrganizationCreateWithoutFavoritesInput, OrganizationUncheckedCreateWithoutFavoritesInput>
    where?: OrganizationWhereInput
  }

  export type OrganizationUpdateToOneWithWhereWithoutFavoritesInput = {
    where?: OrganizationWhereInput
    data: XOR<OrganizationUpdateWithoutFavoritesInput, OrganizationUncheckedUpdateWithoutFavoritesInput>
  }

  export type OrganizationUpdateWithoutFavoritesInput = {
    id?: StringFieldUpdateOperationsInput | string
    inn?: StringFieldUpdateOperationsInput | string
    kpp?: NullableStringFieldUpdateOperationsInput | string | null
    name?: NullableStringFieldUpdateOperationsInput | string | null
    fullName?: NullableStringFieldUpdateOperationsInput | string | null
    ogrn?: NullableStringFieldUpdateOperationsInput | string | null
    ogrnDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    type?: EnumOrganizationTypeFieldUpdateOperationsInput | $Enums.OrganizationType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    address?: NullableStringFieldUpdateOperationsInput | string | null
    addressFull?: NullableStringFieldUpdateOperationsInput | string | null
    status?: NullableStringFieldUpdateOperationsInput | string | null
    actualityDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    registrationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    liquidationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managementName?: NullableStringFieldUpdateOperationsInput | string | null
    managementPost?: NullableStringFieldUpdateOperationsInput | string | null
    opfCode?: NullableStringFieldUpdateOperationsInput | string | null
    opfFull?: NullableStringFieldUpdateOperationsInput | string | null
    opfShort?: NullableStringFieldUpdateOperationsInput | string | null
    okato?: NullableStringFieldUpdateOperationsInput | string | null
    oktmo?: NullableStringFieldUpdateOperationsInput | string | null
    okpo?: NullableStringFieldUpdateOperationsInput | string | null
    okved?: NullableStringFieldUpdateOperationsInput | string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: NullableIntFieldUpdateOperationsInput | number | null
    revenue?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    taxSystem?: NullableStringFieldUpdateOperationsInput | string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUpdateManyWithoutOrganizationNestedInput
    carts?: CartUpdateOneWithoutOrganizationNestedInput
    counterpartyOf?: CounterpartyUpdateManyWithoutCounterpartyNestedInput
    organizationCounterparties?: CounterpartyUpdateManyWithoutOrganizationNestedInput
    receivedRequests?: CounterpartyRequestUpdateManyWithoutReceiverNestedInput
    sentRequests?: CounterpartyRequestUpdateManyWithoutSenderNestedInput
    employees?: EmployeeUpdateManyWithoutOrganizationNestedInput
    receivedMessages?: MessageUpdateManyWithoutReceiverOrganizationNestedInput
    sentMessages?: MessageUpdateManyWithoutSenderOrganizationNestedInput
    products?: ProductUpdateManyWithoutOrganizationNestedInput
    services?: ServiceUpdateManyWithoutOrganizationNestedInput
    supplies?: SupplyUpdateManyWithoutOrganizationNestedInput
    users?: UserUpdateManyWithoutOrganizationNestedInput
    logistics?: LogisticsUpdateManyWithoutOrganizationNestedInput
    supplyOrders?: SupplyOrderUpdateManyWithoutOrganizationNestedInput
    partnerSupplyOrders?: SupplyOrderUpdateManyWithoutPartnerNestedInput
    fulfillmentSupplyOrders?: SupplyOrderUpdateManyWithoutFulfillmentCenterNestedInput
    wildberriesSupplies?: WildberriesSupplyUpdateManyWithoutOrganizationNestedInput
    supplySuppliers?: SupplySupplierUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationUncheckedUpdateWithoutFavoritesInput = {
    id?: StringFieldUpdateOperationsInput | string
    inn?: StringFieldUpdateOperationsInput | string
    kpp?: NullableStringFieldUpdateOperationsInput | string | null
    name?: NullableStringFieldUpdateOperationsInput | string | null
    fullName?: NullableStringFieldUpdateOperationsInput | string | null
    ogrn?: NullableStringFieldUpdateOperationsInput | string | null
    ogrnDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    type?: EnumOrganizationTypeFieldUpdateOperationsInput | $Enums.OrganizationType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    address?: NullableStringFieldUpdateOperationsInput | string | null
    addressFull?: NullableStringFieldUpdateOperationsInput | string | null
    status?: NullableStringFieldUpdateOperationsInput | string | null
    actualityDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    registrationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    liquidationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managementName?: NullableStringFieldUpdateOperationsInput | string | null
    managementPost?: NullableStringFieldUpdateOperationsInput | string | null
    opfCode?: NullableStringFieldUpdateOperationsInput | string | null
    opfFull?: NullableStringFieldUpdateOperationsInput | string | null
    opfShort?: NullableStringFieldUpdateOperationsInput | string | null
    okato?: NullableStringFieldUpdateOperationsInput | string | null
    oktmo?: NullableStringFieldUpdateOperationsInput | string | null
    okpo?: NullableStringFieldUpdateOperationsInput | string | null
    okved?: NullableStringFieldUpdateOperationsInput | string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: NullableIntFieldUpdateOperationsInput | number | null
    revenue?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    taxSystem?: NullableStringFieldUpdateOperationsInput | string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUncheckedUpdateManyWithoutOrganizationNestedInput
    carts?: CartUncheckedUpdateOneWithoutOrganizationNestedInput
    counterpartyOf?: CounterpartyUncheckedUpdateManyWithoutCounterpartyNestedInput
    organizationCounterparties?: CounterpartyUncheckedUpdateManyWithoutOrganizationNestedInput
    receivedRequests?: CounterpartyRequestUncheckedUpdateManyWithoutReceiverNestedInput
    sentRequests?: CounterpartyRequestUncheckedUpdateManyWithoutSenderNestedInput
    employees?: EmployeeUncheckedUpdateManyWithoutOrganizationNestedInput
    receivedMessages?: MessageUncheckedUpdateManyWithoutReceiverOrganizationNestedInput
    sentMessages?: MessageUncheckedUpdateManyWithoutSenderOrganizationNestedInput
    products?: ProductUncheckedUpdateManyWithoutOrganizationNestedInput
    services?: ServiceUncheckedUpdateManyWithoutOrganizationNestedInput
    supplies?: SupplyUncheckedUpdateManyWithoutOrganizationNestedInput
    users?: UserUncheckedUpdateManyWithoutOrganizationNestedInput
    logistics?: LogisticsUncheckedUpdateManyWithoutOrganizationNestedInput
    supplyOrders?: SupplyOrderUncheckedUpdateManyWithoutOrganizationNestedInput
    partnerSupplyOrders?: SupplyOrderUncheckedUpdateManyWithoutPartnerNestedInput
    fulfillmentSupplyOrders?: SupplyOrderUncheckedUpdateManyWithoutFulfillmentCenterNestedInput
    wildberriesSupplies?: WildberriesSupplyUncheckedUpdateManyWithoutOrganizationNestedInput
    supplySuppliers?: SupplySupplierUncheckedUpdateManyWithoutOrganizationNestedInput
  }

  export type ProductUpsertWithoutFavoritesInput = {
    update: XOR<ProductUpdateWithoutFavoritesInput, ProductUncheckedUpdateWithoutFavoritesInput>
    create: XOR<ProductCreateWithoutFavoritesInput, ProductUncheckedCreateWithoutFavoritesInput>
    where?: ProductWhereInput
  }

  export type ProductUpdateToOneWithWhereWithoutFavoritesInput = {
    where?: ProductWhereInput
    data: XOR<ProductUpdateWithoutFavoritesInput, ProductUncheckedUpdateWithoutFavoritesInput>
  }

  export type ProductUpdateWithoutFavoritesInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    article?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    price?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    quantity?: IntFieldUpdateOperationsInput | number
    brand?: NullableStringFieldUpdateOperationsInput | string | null
    color?: NullableStringFieldUpdateOperationsInput | string | null
    size?: NullableStringFieldUpdateOperationsInput | string | null
    weight?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    dimensions?: NullableStringFieldUpdateOperationsInput | string | null
    material?: NullableStringFieldUpdateOperationsInput | string | null
    images?: JsonNullValueInput | InputJsonValue
    mainImage?: NullableStringFieldUpdateOperationsInput | string | null
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    cartItems?: CartItemUpdateManyWithoutProductNestedInput
    supplyOrderItems?: SupplyOrderItemUpdateManyWithoutProductNestedInput
    category?: CategoryUpdateOneWithoutProductsNestedInput
    organization?: OrganizationUpdateOneRequiredWithoutProductsNestedInput
  }

  export type ProductUncheckedUpdateWithoutFavoritesInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    article?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    price?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    quantity?: IntFieldUpdateOperationsInput | number
    categoryId?: NullableStringFieldUpdateOperationsInput | string | null
    brand?: NullableStringFieldUpdateOperationsInput | string | null
    color?: NullableStringFieldUpdateOperationsInput | string | null
    size?: NullableStringFieldUpdateOperationsInput | string | null
    weight?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    dimensions?: NullableStringFieldUpdateOperationsInput | string | null
    material?: NullableStringFieldUpdateOperationsInput | string | null
    images?: JsonNullValueInput | InputJsonValue
    mainImage?: NullableStringFieldUpdateOperationsInput | string | null
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organizationId?: StringFieldUpdateOperationsInput | string
    cartItems?: CartItemUncheckedUpdateManyWithoutProductNestedInput
    supplyOrderItems?: SupplyOrderItemUncheckedUpdateManyWithoutProductNestedInput
  }

  export type EmployeeScheduleCreateWithoutEmployeeInput = {
    id?: string
    date: Date | string
    status: $Enums.ScheduleStatus
    hoursWorked?: number | null
    notes?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type EmployeeScheduleUncheckedCreateWithoutEmployeeInput = {
    id?: string
    date: Date | string
    status: $Enums.ScheduleStatus
    hoursWorked?: number | null
    notes?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type EmployeeScheduleCreateOrConnectWithoutEmployeeInput = {
    where: EmployeeScheduleWhereUniqueInput
    create: XOR<EmployeeScheduleCreateWithoutEmployeeInput, EmployeeScheduleUncheckedCreateWithoutEmployeeInput>
  }

  export type EmployeeScheduleCreateManyEmployeeInputEnvelope = {
    data: EmployeeScheduleCreateManyEmployeeInput | EmployeeScheduleCreateManyEmployeeInput[]
    skipDuplicates?: boolean
  }

  export type OrganizationCreateWithoutEmployeesInput = {
    id?: string
    inn: string
    kpp?: string | null
    name?: string | null
    fullName?: string | null
    ogrn?: string | null
    ogrnDate?: Date | string | null
    type: $Enums.OrganizationType
    createdAt?: Date | string
    updatedAt?: Date | string
    address?: string | null
    addressFull?: string | null
    status?: string | null
    actualityDate?: Date | string | null
    registrationDate?: Date | string | null
    liquidationDate?: Date | string | null
    managementName?: string | null
    managementPost?: string | null
    opfCode?: string | null
    opfFull?: string | null
    opfShort?: string | null
    okato?: string | null
    oktmo?: string | null
    okpo?: string | null
    okved?: string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: number | null
    revenue?: bigint | number | null
    taxSystem?: string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyCreateNestedManyWithoutOrganizationInput
    carts?: CartCreateNestedOneWithoutOrganizationInput
    counterpartyOf?: CounterpartyCreateNestedManyWithoutCounterpartyInput
    organizationCounterparties?: CounterpartyCreateNestedManyWithoutOrganizationInput
    receivedRequests?: CounterpartyRequestCreateNestedManyWithoutReceiverInput
    sentRequests?: CounterpartyRequestCreateNestedManyWithoutSenderInput
    favorites?: FavoritesCreateNestedManyWithoutOrganizationInput
    receivedMessages?: MessageCreateNestedManyWithoutReceiverOrganizationInput
    sentMessages?: MessageCreateNestedManyWithoutSenderOrganizationInput
    products?: ProductCreateNestedManyWithoutOrganizationInput
    services?: ServiceCreateNestedManyWithoutOrganizationInput
    supplies?: SupplyCreateNestedManyWithoutOrganizationInput
    users?: UserCreateNestedManyWithoutOrganizationInput
    logistics?: LogisticsCreateNestedManyWithoutOrganizationInput
    supplyOrders?: SupplyOrderCreateNestedManyWithoutOrganizationInput
    partnerSupplyOrders?: SupplyOrderCreateNestedManyWithoutPartnerInput
    fulfillmentSupplyOrders?: SupplyOrderCreateNestedManyWithoutFulfillmentCenterInput
    wildberriesSupplies?: WildberriesSupplyCreateNestedManyWithoutOrganizationInput
    supplySuppliers?: SupplySupplierCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationUncheckedCreateWithoutEmployeesInput = {
    id?: string
    inn: string
    kpp?: string | null
    name?: string | null
    fullName?: string | null
    ogrn?: string | null
    ogrnDate?: Date | string | null
    type: $Enums.OrganizationType
    createdAt?: Date | string
    updatedAt?: Date | string
    address?: string | null
    addressFull?: string | null
    status?: string | null
    actualityDate?: Date | string | null
    registrationDate?: Date | string | null
    liquidationDate?: Date | string | null
    managementName?: string | null
    managementPost?: string | null
    opfCode?: string | null
    opfFull?: string | null
    opfShort?: string | null
    okato?: string | null
    oktmo?: string | null
    okpo?: string | null
    okved?: string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: number | null
    revenue?: bigint | number | null
    taxSystem?: string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUncheckedCreateNestedManyWithoutOrganizationInput
    carts?: CartUncheckedCreateNestedOneWithoutOrganizationInput
    counterpartyOf?: CounterpartyUncheckedCreateNestedManyWithoutCounterpartyInput
    organizationCounterparties?: CounterpartyUncheckedCreateNestedManyWithoutOrganizationInput
    receivedRequests?: CounterpartyRequestUncheckedCreateNestedManyWithoutReceiverInput
    sentRequests?: CounterpartyRequestUncheckedCreateNestedManyWithoutSenderInput
    favorites?: FavoritesUncheckedCreateNestedManyWithoutOrganizationInput
    receivedMessages?: MessageUncheckedCreateNestedManyWithoutReceiverOrganizationInput
    sentMessages?: MessageUncheckedCreateNestedManyWithoutSenderOrganizationInput
    products?: ProductUncheckedCreateNestedManyWithoutOrganizationInput
    services?: ServiceUncheckedCreateNestedManyWithoutOrganizationInput
    supplies?: SupplyUncheckedCreateNestedManyWithoutOrganizationInput
    users?: UserUncheckedCreateNestedManyWithoutOrganizationInput
    logistics?: LogisticsUncheckedCreateNestedManyWithoutOrganizationInput
    supplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutOrganizationInput
    partnerSupplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutPartnerInput
    fulfillmentSupplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutFulfillmentCenterInput
    wildberriesSupplies?: WildberriesSupplyUncheckedCreateNestedManyWithoutOrganizationInput
    supplySuppliers?: SupplySupplierUncheckedCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationCreateOrConnectWithoutEmployeesInput = {
    where: OrganizationWhereUniqueInput
    create: XOR<OrganizationCreateWithoutEmployeesInput, OrganizationUncheckedCreateWithoutEmployeesInput>
  }

  export type EmployeeScheduleUpsertWithWhereUniqueWithoutEmployeeInput = {
    where: EmployeeScheduleWhereUniqueInput
    update: XOR<EmployeeScheduleUpdateWithoutEmployeeInput, EmployeeScheduleUncheckedUpdateWithoutEmployeeInput>
    create: XOR<EmployeeScheduleCreateWithoutEmployeeInput, EmployeeScheduleUncheckedCreateWithoutEmployeeInput>
  }

  export type EmployeeScheduleUpdateWithWhereUniqueWithoutEmployeeInput = {
    where: EmployeeScheduleWhereUniqueInput
    data: XOR<EmployeeScheduleUpdateWithoutEmployeeInput, EmployeeScheduleUncheckedUpdateWithoutEmployeeInput>
  }

  export type EmployeeScheduleUpdateManyWithWhereWithoutEmployeeInput = {
    where: EmployeeScheduleScalarWhereInput
    data: XOR<EmployeeScheduleUpdateManyMutationInput, EmployeeScheduleUncheckedUpdateManyWithoutEmployeeInput>
  }

  export type EmployeeScheduleScalarWhereInput = {
    AND?: EmployeeScheduleScalarWhereInput | EmployeeScheduleScalarWhereInput[]
    OR?: EmployeeScheduleScalarWhereInput[]
    NOT?: EmployeeScheduleScalarWhereInput | EmployeeScheduleScalarWhereInput[]
    id?: StringFilter<"EmployeeSchedule"> | string
    date?: DateTimeFilter<"EmployeeSchedule"> | Date | string
    status?: EnumScheduleStatusFilter<"EmployeeSchedule"> | $Enums.ScheduleStatus
    hoursWorked?: FloatNullableFilter<"EmployeeSchedule"> | number | null
    notes?: StringNullableFilter<"EmployeeSchedule"> | string | null
    employeeId?: StringFilter<"EmployeeSchedule"> | string
    createdAt?: DateTimeFilter<"EmployeeSchedule"> | Date | string
    updatedAt?: DateTimeFilter<"EmployeeSchedule"> | Date | string
  }

  export type OrganizationUpsertWithoutEmployeesInput = {
    update: XOR<OrganizationUpdateWithoutEmployeesInput, OrganizationUncheckedUpdateWithoutEmployeesInput>
    create: XOR<OrganizationCreateWithoutEmployeesInput, OrganizationUncheckedCreateWithoutEmployeesInput>
    where?: OrganizationWhereInput
  }

  export type OrganizationUpdateToOneWithWhereWithoutEmployeesInput = {
    where?: OrganizationWhereInput
    data: XOR<OrganizationUpdateWithoutEmployeesInput, OrganizationUncheckedUpdateWithoutEmployeesInput>
  }

  export type OrganizationUpdateWithoutEmployeesInput = {
    id?: StringFieldUpdateOperationsInput | string
    inn?: StringFieldUpdateOperationsInput | string
    kpp?: NullableStringFieldUpdateOperationsInput | string | null
    name?: NullableStringFieldUpdateOperationsInput | string | null
    fullName?: NullableStringFieldUpdateOperationsInput | string | null
    ogrn?: NullableStringFieldUpdateOperationsInput | string | null
    ogrnDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    type?: EnumOrganizationTypeFieldUpdateOperationsInput | $Enums.OrganizationType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    address?: NullableStringFieldUpdateOperationsInput | string | null
    addressFull?: NullableStringFieldUpdateOperationsInput | string | null
    status?: NullableStringFieldUpdateOperationsInput | string | null
    actualityDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    registrationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    liquidationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managementName?: NullableStringFieldUpdateOperationsInput | string | null
    managementPost?: NullableStringFieldUpdateOperationsInput | string | null
    opfCode?: NullableStringFieldUpdateOperationsInput | string | null
    opfFull?: NullableStringFieldUpdateOperationsInput | string | null
    opfShort?: NullableStringFieldUpdateOperationsInput | string | null
    okato?: NullableStringFieldUpdateOperationsInput | string | null
    oktmo?: NullableStringFieldUpdateOperationsInput | string | null
    okpo?: NullableStringFieldUpdateOperationsInput | string | null
    okved?: NullableStringFieldUpdateOperationsInput | string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: NullableIntFieldUpdateOperationsInput | number | null
    revenue?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    taxSystem?: NullableStringFieldUpdateOperationsInput | string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUpdateManyWithoutOrganizationNestedInput
    carts?: CartUpdateOneWithoutOrganizationNestedInput
    counterpartyOf?: CounterpartyUpdateManyWithoutCounterpartyNestedInput
    organizationCounterparties?: CounterpartyUpdateManyWithoutOrganizationNestedInput
    receivedRequests?: CounterpartyRequestUpdateManyWithoutReceiverNestedInput
    sentRequests?: CounterpartyRequestUpdateManyWithoutSenderNestedInput
    favorites?: FavoritesUpdateManyWithoutOrganizationNestedInput
    receivedMessages?: MessageUpdateManyWithoutReceiverOrganizationNestedInput
    sentMessages?: MessageUpdateManyWithoutSenderOrganizationNestedInput
    products?: ProductUpdateManyWithoutOrganizationNestedInput
    services?: ServiceUpdateManyWithoutOrganizationNestedInput
    supplies?: SupplyUpdateManyWithoutOrganizationNestedInput
    users?: UserUpdateManyWithoutOrganizationNestedInput
    logistics?: LogisticsUpdateManyWithoutOrganizationNestedInput
    supplyOrders?: SupplyOrderUpdateManyWithoutOrganizationNestedInput
    partnerSupplyOrders?: SupplyOrderUpdateManyWithoutPartnerNestedInput
    fulfillmentSupplyOrders?: SupplyOrderUpdateManyWithoutFulfillmentCenterNestedInput
    wildberriesSupplies?: WildberriesSupplyUpdateManyWithoutOrganizationNestedInput
    supplySuppliers?: SupplySupplierUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationUncheckedUpdateWithoutEmployeesInput = {
    id?: StringFieldUpdateOperationsInput | string
    inn?: StringFieldUpdateOperationsInput | string
    kpp?: NullableStringFieldUpdateOperationsInput | string | null
    name?: NullableStringFieldUpdateOperationsInput | string | null
    fullName?: NullableStringFieldUpdateOperationsInput | string | null
    ogrn?: NullableStringFieldUpdateOperationsInput | string | null
    ogrnDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    type?: EnumOrganizationTypeFieldUpdateOperationsInput | $Enums.OrganizationType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    address?: NullableStringFieldUpdateOperationsInput | string | null
    addressFull?: NullableStringFieldUpdateOperationsInput | string | null
    status?: NullableStringFieldUpdateOperationsInput | string | null
    actualityDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    registrationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    liquidationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managementName?: NullableStringFieldUpdateOperationsInput | string | null
    managementPost?: NullableStringFieldUpdateOperationsInput | string | null
    opfCode?: NullableStringFieldUpdateOperationsInput | string | null
    opfFull?: NullableStringFieldUpdateOperationsInput | string | null
    opfShort?: NullableStringFieldUpdateOperationsInput | string | null
    okato?: NullableStringFieldUpdateOperationsInput | string | null
    oktmo?: NullableStringFieldUpdateOperationsInput | string | null
    okpo?: NullableStringFieldUpdateOperationsInput | string | null
    okved?: NullableStringFieldUpdateOperationsInput | string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: NullableIntFieldUpdateOperationsInput | number | null
    revenue?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    taxSystem?: NullableStringFieldUpdateOperationsInput | string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUncheckedUpdateManyWithoutOrganizationNestedInput
    carts?: CartUncheckedUpdateOneWithoutOrganizationNestedInput
    counterpartyOf?: CounterpartyUncheckedUpdateManyWithoutCounterpartyNestedInput
    organizationCounterparties?: CounterpartyUncheckedUpdateManyWithoutOrganizationNestedInput
    receivedRequests?: CounterpartyRequestUncheckedUpdateManyWithoutReceiverNestedInput
    sentRequests?: CounterpartyRequestUncheckedUpdateManyWithoutSenderNestedInput
    favorites?: FavoritesUncheckedUpdateManyWithoutOrganizationNestedInput
    receivedMessages?: MessageUncheckedUpdateManyWithoutReceiverOrganizationNestedInput
    sentMessages?: MessageUncheckedUpdateManyWithoutSenderOrganizationNestedInput
    products?: ProductUncheckedUpdateManyWithoutOrganizationNestedInput
    services?: ServiceUncheckedUpdateManyWithoutOrganizationNestedInput
    supplies?: SupplyUncheckedUpdateManyWithoutOrganizationNestedInput
    users?: UserUncheckedUpdateManyWithoutOrganizationNestedInput
    logistics?: LogisticsUncheckedUpdateManyWithoutOrganizationNestedInput
    supplyOrders?: SupplyOrderUncheckedUpdateManyWithoutOrganizationNestedInput
    partnerSupplyOrders?: SupplyOrderUncheckedUpdateManyWithoutPartnerNestedInput
    fulfillmentSupplyOrders?: SupplyOrderUncheckedUpdateManyWithoutFulfillmentCenterNestedInput
    wildberriesSupplies?: WildberriesSupplyUncheckedUpdateManyWithoutOrganizationNestedInput
    supplySuppliers?: SupplySupplierUncheckedUpdateManyWithoutOrganizationNestedInput
  }

  export type EmployeeCreateWithoutScheduleRecordsInput = {
    id?: string
    firstName: string
    lastName: string
    middleName?: string | null
    birthDate?: Date | string | null
    avatar?: string | null
    passportPhoto?: string | null
    passportSeries?: string | null
    passportNumber?: string | null
    passportIssued?: string | null
    passportDate?: Date | string | null
    address?: string | null
    position: string
    department?: string | null
    hireDate: Date | string
    salary?: number | null
    status?: $Enums.EmployeeStatus
    phone: string
    email?: string | null
    telegram?: string | null
    whatsapp?: string | null
    emergencyContact?: string | null
    emergencyPhone?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    organization: OrganizationCreateNestedOneWithoutEmployeesInput
  }

  export type EmployeeUncheckedCreateWithoutScheduleRecordsInput = {
    id?: string
    firstName: string
    lastName: string
    middleName?: string | null
    birthDate?: Date | string | null
    avatar?: string | null
    passportPhoto?: string | null
    passportSeries?: string | null
    passportNumber?: string | null
    passportIssued?: string | null
    passportDate?: Date | string | null
    address?: string | null
    position: string
    department?: string | null
    hireDate: Date | string
    salary?: number | null
    status?: $Enums.EmployeeStatus
    phone: string
    email?: string | null
    telegram?: string | null
    whatsapp?: string | null
    emergencyContact?: string | null
    emergencyPhone?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type EmployeeCreateOrConnectWithoutScheduleRecordsInput = {
    where: EmployeeWhereUniqueInput
    create: XOR<EmployeeCreateWithoutScheduleRecordsInput, EmployeeUncheckedCreateWithoutScheduleRecordsInput>
  }

  export type EmployeeUpsertWithoutScheduleRecordsInput = {
    update: XOR<EmployeeUpdateWithoutScheduleRecordsInput, EmployeeUncheckedUpdateWithoutScheduleRecordsInput>
    create: XOR<EmployeeCreateWithoutScheduleRecordsInput, EmployeeUncheckedCreateWithoutScheduleRecordsInput>
    where?: EmployeeWhereInput
  }

  export type EmployeeUpdateToOneWithWhereWithoutScheduleRecordsInput = {
    where?: EmployeeWhereInput
    data: XOR<EmployeeUpdateWithoutScheduleRecordsInput, EmployeeUncheckedUpdateWithoutScheduleRecordsInput>
  }

  export type EmployeeUpdateWithoutScheduleRecordsInput = {
    id?: StringFieldUpdateOperationsInput | string
    firstName?: StringFieldUpdateOperationsInput | string
    lastName?: StringFieldUpdateOperationsInput | string
    middleName?: NullableStringFieldUpdateOperationsInput | string | null
    birthDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    passportPhoto?: NullableStringFieldUpdateOperationsInput | string | null
    passportSeries?: NullableStringFieldUpdateOperationsInput | string | null
    passportNumber?: NullableStringFieldUpdateOperationsInput | string | null
    passportIssued?: NullableStringFieldUpdateOperationsInput | string | null
    passportDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    position?: StringFieldUpdateOperationsInput | string
    department?: NullableStringFieldUpdateOperationsInput | string | null
    hireDate?: DateTimeFieldUpdateOperationsInput | Date | string
    salary?: NullableFloatFieldUpdateOperationsInput | number | null
    status?: EnumEmployeeStatusFieldUpdateOperationsInput | $Enums.EmployeeStatus
    phone?: StringFieldUpdateOperationsInput | string
    email?: NullableStringFieldUpdateOperationsInput | string | null
    telegram?: NullableStringFieldUpdateOperationsInput | string | null
    whatsapp?: NullableStringFieldUpdateOperationsInput | string | null
    emergencyContact?: NullableStringFieldUpdateOperationsInput | string | null
    emergencyPhone?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organization?: OrganizationUpdateOneRequiredWithoutEmployeesNestedInput
  }

  export type EmployeeUncheckedUpdateWithoutScheduleRecordsInput = {
    id?: StringFieldUpdateOperationsInput | string
    firstName?: StringFieldUpdateOperationsInput | string
    lastName?: StringFieldUpdateOperationsInput | string
    middleName?: NullableStringFieldUpdateOperationsInput | string | null
    birthDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    passportPhoto?: NullableStringFieldUpdateOperationsInput | string | null
    passportSeries?: NullableStringFieldUpdateOperationsInput | string | null
    passportNumber?: NullableStringFieldUpdateOperationsInput | string | null
    passportIssued?: NullableStringFieldUpdateOperationsInput | string | null
    passportDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    position?: StringFieldUpdateOperationsInput | string
    department?: NullableStringFieldUpdateOperationsInput | string | null
    hireDate?: DateTimeFieldUpdateOperationsInput | Date | string
    salary?: NullableFloatFieldUpdateOperationsInput | number | null
    status?: EnumEmployeeStatusFieldUpdateOperationsInput | $Enums.EmployeeStatus
    phone?: StringFieldUpdateOperationsInput | string
    email?: NullableStringFieldUpdateOperationsInput | string | null
    telegram?: NullableStringFieldUpdateOperationsInput | string | null
    whatsapp?: NullableStringFieldUpdateOperationsInput | string | null
    emergencyContact?: NullableStringFieldUpdateOperationsInput | string | null
    emergencyPhone?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OrganizationCreateWithoutWildberriesSuppliesInput = {
    id?: string
    inn: string
    kpp?: string | null
    name?: string | null
    fullName?: string | null
    ogrn?: string | null
    ogrnDate?: Date | string | null
    type: $Enums.OrganizationType
    createdAt?: Date | string
    updatedAt?: Date | string
    address?: string | null
    addressFull?: string | null
    status?: string | null
    actualityDate?: Date | string | null
    registrationDate?: Date | string | null
    liquidationDate?: Date | string | null
    managementName?: string | null
    managementPost?: string | null
    opfCode?: string | null
    opfFull?: string | null
    opfShort?: string | null
    okato?: string | null
    oktmo?: string | null
    okpo?: string | null
    okved?: string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: number | null
    revenue?: bigint | number | null
    taxSystem?: string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyCreateNestedManyWithoutOrganizationInput
    carts?: CartCreateNestedOneWithoutOrganizationInput
    counterpartyOf?: CounterpartyCreateNestedManyWithoutCounterpartyInput
    organizationCounterparties?: CounterpartyCreateNestedManyWithoutOrganizationInput
    receivedRequests?: CounterpartyRequestCreateNestedManyWithoutReceiverInput
    sentRequests?: CounterpartyRequestCreateNestedManyWithoutSenderInput
    employees?: EmployeeCreateNestedManyWithoutOrganizationInput
    favorites?: FavoritesCreateNestedManyWithoutOrganizationInput
    receivedMessages?: MessageCreateNestedManyWithoutReceiverOrganizationInput
    sentMessages?: MessageCreateNestedManyWithoutSenderOrganizationInput
    products?: ProductCreateNestedManyWithoutOrganizationInput
    services?: ServiceCreateNestedManyWithoutOrganizationInput
    supplies?: SupplyCreateNestedManyWithoutOrganizationInput
    users?: UserCreateNestedManyWithoutOrganizationInput
    logistics?: LogisticsCreateNestedManyWithoutOrganizationInput
    supplyOrders?: SupplyOrderCreateNestedManyWithoutOrganizationInput
    partnerSupplyOrders?: SupplyOrderCreateNestedManyWithoutPartnerInput
    fulfillmentSupplyOrders?: SupplyOrderCreateNestedManyWithoutFulfillmentCenterInput
    supplySuppliers?: SupplySupplierCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationUncheckedCreateWithoutWildberriesSuppliesInput = {
    id?: string
    inn: string
    kpp?: string | null
    name?: string | null
    fullName?: string | null
    ogrn?: string | null
    ogrnDate?: Date | string | null
    type: $Enums.OrganizationType
    createdAt?: Date | string
    updatedAt?: Date | string
    address?: string | null
    addressFull?: string | null
    status?: string | null
    actualityDate?: Date | string | null
    registrationDate?: Date | string | null
    liquidationDate?: Date | string | null
    managementName?: string | null
    managementPost?: string | null
    opfCode?: string | null
    opfFull?: string | null
    opfShort?: string | null
    okato?: string | null
    oktmo?: string | null
    okpo?: string | null
    okved?: string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: number | null
    revenue?: bigint | number | null
    taxSystem?: string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUncheckedCreateNestedManyWithoutOrganizationInput
    carts?: CartUncheckedCreateNestedOneWithoutOrganizationInput
    counterpartyOf?: CounterpartyUncheckedCreateNestedManyWithoutCounterpartyInput
    organizationCounterparties?: CounterpartyUncheckedCreateNestedManyWithoutOrganizationInput
    receivedRequests?: CounterpartyRequestUncheckedCreateNestedManyWithoutReceiverInput
    sentRequests?: CounterpartyRequestUncheckedCreateNestedManyWithoutSenderInput
    employees?: EmployeeUncheckedCreateNestedManyWithoutOrganizationInput
    favorites?: FavoritesUncheckedCreateNestedManyWithoutOrganizationInput
    receivedMessages?: MessageUncheckedCreateNestedManyWithoutReceiverOrganizationInput
    sentMessages?: MessageUncheckedCreateNestedManyWithoutSenderOrganizationInput
    products?: ProductUncheckedCreateNestedManyWithoutOrganizationInput
    services?: ServiceUncheckedCreateNestedManyWithoutOrganizationInput
    supplies?: SupplyUncheckedCreateNestedManyWithoutOrganizationInput
    users?: UserUncheckedCreateNestedManyWithoutOrganizationInput
    logistics?: LogisticsUncheckedCreateNestedManyWithoutOrganizationInput
    supplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutOrganizationInput
    partnerSupplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutPartnerInput
    fulfillmentSupplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutFulfillmentCenterInput
    supplySuppliers?: SupplySupplierUncheckedCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationCreateOrConnectWithoutWildberriesSuppliesInput = {
    where: OrganizationWhereUniqueInput
    create: XOR<OrganizationCreateWithoutWildberriesSuppliesInput, OrganizationUncheckedCreateWithoutWildberriesSuppliesInput>
  }

  export type WildberriesSupplyCardCreateWithoutSupplyInput = {
    id?: string
    nmId: string
    vendorCode: string
    title: string
    brand?: string | null
    price: Decimal | DecimalJsLike | number | string
    discountedPrice?: Decimal | DecimalJsLike | number | string | null
    quantity: number
    selectedQuantity: number
    selectedMarket?: string | null
    selectedPlace?: string | null
    sellerName?: string | null
    sellerPhone?: string | null
    deliveryDate?: Date | string | null
    mediaFiles?: JsonNullValueInput | InputJsonValue
    selectedServices?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type WildberriesSupplyCardUncheckedCreateWithoutSupplyInput = {
    id?: string
    nmId: string
    vendorCode: string
    title: string
    brand?: string | null
    price: Decimal | DecimalJsLike | number | string
    discountedPrice?: Decimal | DecimalJsLike | number | string | null
    quantity: number
    selectedQuantity: number
    selectedMarket?: string | null
    selectedPlace?: string | null
    sellerName?: string | null
    sellerPhone?: string | null
    deliveryDate?: Date | string | null
    mediaFiles?: JsonNullValueInput | InputJsonValue
    selectedServices?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type WildberriesSupplyCardCreateOrConnectWithoutSupplyInput = {
    where: WildberriesSupplyCardWhereUniqueInput
    create: XOR<WildberriesSupplyCardCreateWithoutSupplyInput, WildberriesSupplyCardUncheckedCreateWithoutSupplyInput>
  }

  export type WildberriesSupplyCardCreateManySupplyInputEnvelope = {
    data: WildberriesSupplyCardCreateManySupplyInput | WildberriesSupplyCardCreateManySupplyInput[]
    skipDuplicates?: boolean
  }

  export type OrganizationUpsertWithoutWildberriesSuppliesInput = {
    update: XOR<OrganizationUpdateWithoutWildberriesSuppliesInput, OrganizationUncheckedUpdateWithoutWildberriesSuppliesInput>
    create: XOR<OrganizationCreateWithoutWildberriesSuppliesInput, OrganizationUncheckedCreateWithoutWildberriesSuppliesInput>
    where?: OrganizationWhereInput
  }

  export type OrganizationUpdateToOneWithWhereWithoutWildberriesSuppliesInput = {
    where?: OrganizationWhereInput
    data: XOR<OrganizationUpdateWithoutWildberriesSuppliesInput, OrganizationUncheckedUpdateWithoutWildberriesSuppliesInput>
  }

  export type OrganizationUpdateWithoutWildberriesSuppliesInput = {
    id?: StringFieldUpdateOperationsInput | string
    inn?: StringFieldUpdateOperationsInput | string
    kpp?: NullableStringFieldUpdateOperationsInput | string | null
    name?: NullableStringFieldUpdateOperationsInput | string | null
    fullName?: NullableStringFieldUpdateOperationsInput | string | null
    ogrn?: NullableStringFieldUpdateOperationsInput | string | null
    ogrnDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    type?: EnumOrganizationTypeFieldUpdateOperationsInput | $Enums.OrganizationType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    address?: NullableStringFieldUpdateOperationsInput | string | null
    addressFull?: NullableStringFieldUpdateOperationsInput | string | null
    status?: NullableStringFieldUpdateOperationsInput | string | null
    actualityDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    registrationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    liquidationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managementName?: NullableStringFieldUpdateOperationsInput | string | null
    managementPost?: NullableStringFieldUpdateOperationsInput | string | null
    opfCode?: NullableStringFieldUpdateOperationsInput | string | null
    opfFull?: NullableStringFieldUpdateOperationsInput | string | null
    opfShort?: NullableStringFieldUpdateOperationsInput | string | null
    okato?: NullableStringFieldUpdateOperationsInput | string | null
    oktmo?: NullableStringFieldUpdateOperationsInput | string | null
    okpo?: NullableStringFieldUpdateOperationsInput | string | null
    okved?: NullableStringFieldUpdateOperationsInput | string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: NullableIntFieldUpdateOperationsInput | number | null
    revenue?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    taxSystem?: NullableStringFieldUpdateOperationsInput | string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUpdateManyWithoutOrganizationNestedInput
    carts?: CartUpdateOneWithoutOrganizationNestedInput
    counterpartyOf?: CounterpartyUpdateManyWithoutCounterpartyNestedInput
    organizationCounterparties?: CounterpartyUpdateManyWithoutOrganizationNestedInput
    receivedRequests?: CounterpartyRequestUpdateManyWithoutReceiverNestedInput
    sentRequests?: CounterpartyRequestUpdateManyWithoutSenderNestedInput
    employees?: EmployeeUpdateManyWithoutOrganizationNestedInput
    favorites?: FavoritesUpdateManyWithoutOrganizationNestedInput
    receivedMessages?: MessageUpdateManyWithoutReceiverOrganizationNestedInput
    sentMessages?: MessageUpdateManyWithoutSenderOrganizationNestedInput
    products?: ProductUpdateManyWithoutOrganizationNestedInput
    services?: ServiceUpdateManyWithoutOrganizationNestedInput
    supplies?: SupplyUpdateManyWithoutOrganizationNestedInput
    users?: UserUpdateManyWithoutOrganizationNestedInput
    logistics?: LogisticsUpdateManyWithoutOrganizationNestedInput
    supplyOrders?: SupplyOrderUpdateManyWithoutOrganizationNestedInput
    partnerSupplyOrders?: SupplyOrderUpdateManyWithoutPartnerNestedInput
    fulfillmentSupplyOrders?: SupplyOrderUpdateManyWithoutFulfillmentCenterNestedInput
    supplySuppliers?: SupplySupplierUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationUncheckedUpdateWithoutWildberriesSuppliesInput = {
    id?: StringFieldUpdateOperationsInput | string
    inn?: StringFieldUpdateOperationsInput | string
    kpp?: NullableStringFieldUpdateOperationsInput | string | null
    name?: NullableStringFieldUpdateOperationsInput | string | null
    fullName?: NullableStringFieldUpdateOperationsInput | string | null
    ogrn?: NullableStringFieldUpdateOperationsInput | string | null
    ogrnDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    type?: EnumOrganizationTypeFieldUpdateOperationsInput | $Enums.OrganizationType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    address?: NullableStringFieldUpdateOperationsInput | string | null
    addressFull?: NullableStringFieldUpdateOperationsInput | string | null
    status?: NullableStringFieldUpdateOperationsInput | string | null
    actualityDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    registrationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    liquidationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managementName?: NullableStringFieldUpdateOperationsInput | string | null
    managementPost?: NullableStringFieldUpdateOperationsInput | string | null
    opfCode?: NullableStringFieldUpdateOperationsInput | string | null
    opfFull?: NullableStringFieldUpdateOperationsInput | string | null
    opfShort?: NullableStringFieldUpdateOperationsInput | string | null
    okato?: NullableStringFieldUpdateOperationsInput | string | null
    oktmo?: NullableStringFieldUpdateOperationsInput | string | null
    okpo?: NullableStringFieldUpdateOperationsInput | string | null
    okved?: NullableStringFieldUpdateOperationsInput | string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: NullableIntFieldUpdateOperationsInput | number | null
    revenue?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    taxSystem?: NullableStringFieldUpdateOperationsInput | string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUncheckedUpdateManyWithoutOrganizationNestedInput
    carts?: CartUncheckedUpdateOneWithoutOrganizationNestedInput
    counterpartyOf?: CounterpartyUncheckedUpdateManyWithoutCounterpartyNestedInput
    organizationCounterparties?: CounterpartyUncheckedUpdateManyWithoutOrganizationNestedInput
    receivedRequests?: CounterpartyRequestUncheckedUpdateManyWithoutReceiverNestedInput
    sentRequests?: CounterpartyRequestUncheckedUpdateManyWithoutSenderNestedInput
    employees?: EmployeeUncheckedUpdateManyWithoutOrganizationNestedInput
    favorites?: FavoritesUncheckedUpdateManyWithoutOrganizationNestedInput
    receivedMessages?: MessageUncheckedUpdateManyWithoutReceiverOrganizationNestedInput
    sentMessages?: MessageUncheckedUpdateManyWithoutSenderOrganizationNestedInput
    products?: ProductUncheckedUpdateManyWithoutOrganizationNestedInput
    services?: ServiceUncheckedUpdateManyWithoutOrganizationNestedInput
    supplies?: SupplyUncheckedUpdateManyWithoutOrganizationNestedInput
    users?: UserUncheckedUpdateManyWithoutOrganizationNestedInput
    logistics?: LogisticsUncheckedUpdateManyWithoutOrganizationNestedInput
    supplyOrders?: SupplyOrderUncheckedUpdateManyWithoutOrganizationNestedInput
    partnerSupplyOrders?: SupplyOrderUncheckedUpdateManyWithoutPartnerNestedInput
    fulfillmentSupplyOrders?: SupplyOrderUncheckedUpdateManyWithoutFulfillmentCenterNestedInput
    supplySuppliers?: SupplySupplierUncheckedUpdateManyWithoutOrganizationNestedInput
  }

  export type WildberriesSupplyCardUpsertWithWhereUniqueWithoutSupplyInput = {
    where: WildberriesSupplyCardWhereUniqueInput
    update: XOR<WildberriesSupplyCardUpdateWithoutSupplyInput, WildberriesSupplyCardUncheckedUpdateWithoutSupplyInput>
    create: XOR<WildberriesSupplyCardCreateWithoutSupplyInput, WildberriesSupplyCardUncheckedCreateWithoutSupplyInput>
  }

  export type WildberriesSupplyCardUpdateWithWhereUniqueWithoutSupplyInput = {
    where: WildberriesSupplyCardWhereUniqueInput
    data: XOR<WildberriesSupplyCardUpdateWithoutSupplyInput, WildberriesSupplyCardUncheckedUpdateWithoutSupplyInput>
  }

  export type WildberriesSupplyCardUpdateManyWithWhereWithoutSupplyInput = {
    where: WildberriesSupplyCardScalarWhereInput
    data: XOR<WildberriesSupplyCardUpdateManyMutationInput, WildberriesSupplyCardUncheckedUpdateManyWithoutSupplyInput>
  }

  export type WildberriesSupplyCardScalarWhereInput = {
    AND?: WildberriesSupplyCardScalarWhereInput | WildberriesSupplyCardScalarWhereInput[]
    OR?: WildberriesSupplyCardScalarWhereInput[]
    NOT?: WildberriesSupplyCardScalarWhereInput | WildberriesSupplyCardScalarWhereInput[]
    id?: StringFilter<"WildberriesSupplyCard"> | string
    supplyId?: StringFilter<"WildberriesSupplyCard"> | string
    nmId?: StringFilter<"WildberriesSupplyCard"> | string
    vendorCode?: StringFilter<"WildberriesSupplyCard"> | string
    title?: StringFilter<"WildberriesSupplyCard"> | string
    brand?: StringNullableFilter<"WildberriesSupplyCard"> | string | null
    price?: DecimalFilter<"WildberriesSupplyCard"> | Decimal | DecimalJsLike | number | string
    discountedPrice?: DecimalNullableFilter<"WildberriesSupplyCard"> | Decimal | DecimalJsLike | number | string | null
    quantity?: IntFilter<"WildberriesSupplyCard"> | number
    selectedQuantity?: IntFilter<"WildberriesSupplyCard"> | number
    selectedMarket?: StringNullableFilter<"WildberriesSupplyCard"> | string | null
    selectedPlace?: StringNullableFilter<"WildberriesSupplyCard"> | string | null
    sellerName?: StringNullableFilter<"WildberriesSupplyCard"> | string | null
    sellerPhone?: StringNullableFilter<"WildberriesSupplyCard"> | string | null
    deliveryDate?: DateTimeNullableFilter<"WildberriesSupplyCard"> | Date | string | null
    mediaFiles?: JsonFilter<"WildberriesSupplyCard">
    selectedServices?: JsonFilter<"WildberriesSupplyCard">
    createdAt?: DateTimeFilter<"WildberriesSupplyCard"> | Date | string
    updatedAt?: DateTimeFilter<"WildberriesSupplyCard"> | Date | string
  }

  export type WildberriesSupplyCreateWithoutCardsInput = {
    id?: string
    deliveryDate?: Date | string | null
    status?: $Enums.WildberriesSupplyStatus
    totalAmount: Decimal | DecimalJsLike | number | string
    totalItems: number
    createdAt?: Date | string
    updatedAt?: Date | string
    organization: OrganizationCreateNestedOneWithoutWildberriesSuppliesInput
  }

  export type WildberriesSupplyUncheckedCreateWithoutCardsInput = {
    id?: string
    organizationId: string
    deliveryDate?: Date | string | null
    status?: $Enums.WildberriesSupplyStatus
    totalAmount: Decimal | DecimalJsLike | number | string
    totalItems: number
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type WildberriesSupplyCreateOrConnectWithoutCardsInput = {
    where: WildberriesSupplyWhereUniqueInput
    create: XOR<WildberriesSupplyCreateWithoutCardsInput, WildberriesSupplyUncheckedCreateWithoutCardsInput>
  }

  export type WildberriesSupplyUpsertWithoutCardsInput = {
    update: XOR<WildberriesSupplyUpdateWithoutCardsInput, WildberriesSupplyUncheckedUpdateWithoutCardsInput>
    create: XOR<WildberriesSupplyCreateWithoutCardsInput, WildberriesSupplyUncheckedCreateWithoutCardsInput>
    where?: WildberriesSupplyWhereInput
  }

  export type WildberriesSupplyUpdateToOneWithWhereWithoutCardsInput = {
    where?: WildberriesSupplyWhereInput
    data: XOR<WildberriesSupplyUpdateWithoutCardsInput, WildberriesSupplyUncheckedUpdateWithoutCardsInput>
  }

  export type WildberriesSupplyUpdateWithoutCardsInput = {
    id?: StringFieldUpdateOperationsInput | string
    deliveryDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    status?: EnumWildberriesSupplyStatusFieldUpdateOperationsInput | $Enums.WildberriesSupplyStatus
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    totalItems?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organization?: OrganizationUpdateOneRequiredWithoutWildberriesSuppliesNestedInput
  }

  export type WildberriesSupplyUncheckedUpdateWithoutCardsInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    deliveryDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    status?: EnumWildberriesSupplyStatusFieldUpdateOperationsInput | $Enums.WildberriesSupplyStatus
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    totalItems?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OrganizationCreateWithoutLogisticsInput = {
    id?: string
    inn: string
    kpp?: string | null
    name?: string | null
    fullName?: string | null
    ogrn?: string | null
    ogrnDate?: Date | string | null
    type: $Enums.OrganizationType
    createdAt?: Date | string
    updatedAt?: Date | string
    address?: string | null
    addressFull?: string | null
    status?: string | null
    actualityDate?: Date | string | null
    registrationDate?: Date | string | null
    liquidationDate?: Date | string | null
    managementName?: string | null
    managementPost?: string | null
    opfCode?: string | null
    opfFull?: string | null
    opfShort?: string | null
    okato?: string | null
    oktmo?: string | null
    okpo?: string | null
    okved?: string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: number | null
    revenue?: bigint | number | null
    taxSystem?: string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyCreateNestedManyWithoutOrganizationInput
    carts?: CartCreateNestedOneWithoutOrganizationInput
    counterpartyOf?: CounterpartyCreateNestedManyWithoutCounterpartyInput
    organizationCounterparties?: CounterpartyCreateNestedManyWithoutOrganizationInput
    receivedRequests?: CounterpartyRequestCreateNestedManyWithoutReceiverInput
    sentRequests?: CounterpartyRequestCreateNestedManyWithoutSenderInput
    employees?: EmployeeCreateNestedManyWithoutOrganizationInput
    favorites?: FavoritesCreateNestedManyWithoutOrganizationInput
    receivedMessages?: MessageCreateNestedManyWithoutReceiverOrganizationInput
    sentMessages?: MessageCreateNestedManyWithoutSenderOrganizationInput
    products?: ProductCreateNestedManyWithoutOrganizationInput
    services?: ServiceCreateNestedManyWithoutOrganizationInput
    supplies?: SupplyCreateNestedManyWithoutOrganizationInput
    users?: UserCreateNestedManyWithoutOrganizationInput
    supplyOrders?: SupplyOrderCreateNestedManyWithoutOrganizationInput
    partnerSupplyOrders?: SupplyOrderCreateNestedManyWithoutPartnerInput
    fulfillmentSupplyOrders?: SupplyOrderCreateNestedManyWithoutFulfillmentCenterInput
    wildberriesSupplies?: WildberriesSupplyCreateNestedManyWithoutOrganizationInput
    supplySuppliers?: SupplySupplierCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationUncheckedCreateWithoutLogisticsInput = {
    id?: string
    inn: string
    kpp?: string | null
    name?: string | null
    fullName?: string | null
    ogrn?: string | null
    ogrnDate?: Date | string | null
    type: $Enums.OrganizationType
    createdAt?: Date | string
    updatedAt?: Date | string
    address?: string | null
    addressFull?: string | null
    status?: string | null
    actualityDate?: Date | string | null
    registrationDate?: Date | string | null
    liquidationDate?: Date | string | null
    managementName?: string | null
    managementPost?: string | null
    opfCode?: string | null
    opfFull?: string | null
    opfShort?: string | null
    okato?: string | null
    oktmo?: string | null
    okpo?: string | null
    okved?: string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: number | null
    revenue?: bigint | number | null
    taxSystem?: string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUncheckedCreateNestedManyWithoutOrganizationInput
    carts?: CartUncheckedCreateNestedOneWithoutOrganizationInput
    counterpartyOf?: CounterpartyUncheckedCreateNestedManyWithoutCounterpartyInput
    organizationCounterparties?: CounterpartyUncheckedCreateNestedManyWithoutOrganizationInput
    receivedRequests?: CounterpartyRequestUncheckedCreateNestedManyWithoutReceiverInput
    sentRequests?: CounterpartyRequestUncheckedCreateNestedManyWithoutSenderInput
    employees?: EmployeeUncheckedCreateNestedManyWithoutOrganizationInput
    favorites?: FavoritesUncheckedCreateNestedManyWithoutOrganizationInput
    receivedMessages?: MessageUncheckedCreateNestedManyWithoutReceiverOrganizationInput
    sentMessages?: MessageUncheckedCreateNestedManyWithoutSenderOrganizationInput
    products?: ProductUncheckedCreateNestedManyWithoutOrganizationInput
    services?: ServiceUncheckedCreateNestedManyWithoutOrganizationInput
    supplies?: SupplyUncheckedCreateNestedManyWithoutOrganizationInput
    users?: UserUncheckedCreateNestedManyWithoutOrganizationInput
    supplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutOrganizationInput
    partnerSupplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutPartnerInput
    fulfillmentSupplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutFulfillmentCenterInput
    wildberriesSupplies?: WildberriesSupplyUncheckedCreateNestedManyWithoutOrganizationInput
    supplySuppliers?: SupplySupplierUncheckedCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationCreateOrConnectWithoutLogisticsInput = {
    where: OrganizationWhereUniqueInput
    create: XOR<OrganizationCreateWithoutLogisticsInput, OrganizationUncheckedCreateWithoutLogisticsInput>
  }

  export type OrganizationUpsertWithoutLogisticsInput = {
    update: XOR<OrganizationUpdateWithoutLogisticsInput, OrganizationUncheckedUpdateWithoutLogisticsInput>
    create: XOR<OrganizationCreateWithoutLogisticsInput, OrganizationUncheckedCreateWithoutLogisticsInput>
    where?: OrganizationWhereInput
  }

  export type OrganizationUpdateToOneWithWhereWithoutLogisticsInput = {
    where?: OrganizationWhereInput
    data: XOR<OrganizationUpdateWithoutLogisticsInput, OrganizationUncheckedUpdateWithoutLogisticsInput>
  }

  export type OrganizationUpdateWithoutLogisticsInput = {
    id?: StringFieldUpdateOperationsInput | string
    inn?: StringFieldUpdateOperationsInput | string
    kpp?: NullableStringFieldUpdateOperationsInput | string | null
    name?: NullableStringFieldUpdateOperationsInput | string | null
    fullName?: NullableStringFieldUpdateOperationsInput | string | null
    ogrn?: NullableStringFieldUpdateOperationsInput | string | null
    ogrnDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    type?: EnumOrganizationTypeFieldUpdateOperationsInput | $Enums.OrganizationType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    address?: NullableStringFieldUpdateOperationsInput | string | null
    addressFull?: NullableStringFieldUpdateOperationsInput | string | null
    status?: NullableStringFieldUpdateOperationsInput | string | null
    actualityDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    registrationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    liquidationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managementName?: NullableStringFieldUpdateOperationsInput | string | null
    managementPost?: NullableStringFieldUpdateOperationsInput | string | null
    opfCode?: NullableStringFieldUpdateOperationsInput | string | null
    opfFull?: NullableStringFieldUpdateOperationsInput | string | null
    opfShort?: NullableStringFieldUpdateOperationsInput | string | null
    okato?: NullableStringFieldUpdateOperationsInput | string | null
    oktmo?: NullableStringFieldUpdateOperationsInput | string | null
    okpo?: NullableStringFieldUpdateOperationsInput | string | null
    okved?: NullableStringFieldUpdateOperationsInput | string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: NullableIntFieldUpdateOperationsInput | number | null
    revenue?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    taxSystem?: NullableStringFieldUpdateOperationsInput | string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUpdateManyWithoutOrganizationNestedInput
    carts?: CartUpdateOneWithoutOrganizationNestedInput
    counterpartyOf?: CounterpartyUpdateManyWithoutCounterpartyNestedInput
    organizationCounterparties?: CounterpartyUpdateManyWithoutOrganizationNestedInput
    receivedRequests?: CounterpartyRequestUpdateManyWithoutReceiverNestedInput
    sentRequests?: CounterpartyRequestUpdateManyWithoutSenderNestedInput
    employees?: EmployeeUpdateManyWithoutOrganizationNestedInput
    favorites?: FavoritesUpdateManyWithoutOrganizationNestedInput
    receivedMessages?: MessageUpdateManyWithoutReceiverOrganizationNestedInput
    sentMessages?: MessageUpdateManyWithoutSenderOrganizationNestedInput
    products?: ProductUpdateManyWithoutOrganizationNestedInput
    services?: ServiceUpdateManyWithoutOrganizationNestedInput
    supplies?: SupplyUpdateManyWithoutOrganizationNestedInput
    users?: UserUpdateManyWithoutOrganizationNestedInput
    supplyOrders?: SupplyOrderUpdateManyWithoutOrganizationNestedInput
    partnerSupplyOrders?: SupplyOrderUpdateManyWithoutPartnerNestedInput
    fulfillmentSupplyOrders?: SupplyOrderUpdateManyWithoutFulfillmentCenterNestedInput
    wildberriesSupplies?: WildberriesSupplyUpdateManyWithoutOrganizationNestedInput
    supplySuppliers?: SupplySupplierUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationUncheckedUpdateWithoutLogisticsInput = {
    id?: StringFieldUpdateOperationsInput | string
    inn?: StringFieldUpdateOperationsInput | string
    kpp?: NullableStringFieldUpdateOperationsInput | string | null
    name?: NullableStringFieldUpdateOperationsInput | string | null
    fullName?: NullableStringFieldUpdateOperationsInput | string | null
    ogrn?: NullableStringFieldUpdateOperationsInput | string | null
    ogrnDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    type?: EnumOrganizationTypeFieldUpdateOperationsInput | $Enums.OrganizationType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    address?: NullableStringFieldUpdateOperationsInput | string | null
    addressFull?: NullableStringFieldUpdateOperationsInput | string | null
    status?: NullableStringFieldUpdateOperationsInput | string | null
    actualityDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    registrationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    liquidationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managementName?: NullableStringFieldUpdateOperationsInput | string | null
    managementPost?: NullableStringFieldUpdateOperationsInput | string | null
    opfCode?: NullableStringFieldUpdateOperationsInput | string | null
    opfFull?: NullableStringFieldUpdateOperationsInput | string | null
    opfShort?: NullableStringFieldUpdateOperationsInput | string | null
    okato?: NullableStringFieldUpdateOperationsInput | string | null
    oktmo?: NullableStringFieldUpdateOperationsInput | string | null
    okpo?: NullableStringFieldUpdateOperationsInput | string | null
    okved?: NullableStringFieldUpdateOperationsInput | string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: NullableIntFieldUpdateOperationsInput | number | null
    revenue?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    taxSystem?: NullableStringFieldUpdateOperationsInput | string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUncheckedUpdateManyWithoutOrganizationNestedInput
    carts?: CartUncheckedUpdateOneWithoutOrganizationNestedInput
    counterpartyOf?: CounterpartyUncheckedUpdateManyWithoutCounterpartyNestedInput
    organizationCounterparties?: CounterpartyUncheckedUpdateManyWithoutOrganizationNestedInput
    receivedRequests?: CounterpartyRequestUncheckedUpdateManyWithoutReceiverNestedInput
    sentRequests?: CounterpartyRequestUncheckedUpdateManyWithoutSenderNestedInput
    employees?: EmployeeUncheckedUpdateManyWithoutOrganizationNestedInput
    favorites?: FavoritesUncheckedUpdateManyWithoutOrganizationNestedInput
    receivedMessages?: MessageUncheckedUpdateManyWithoutReceiverOrganizationNestedInput
    sentMessages?: MessageUncheckedUpdateManyWithoutSenderOrganizationNestedInput
    products?: ProductUncheckedUpdateManyWithoutOrganizationNestedInput
    services?: ServiceUncheckedUpdateManyWithoutOrganizationNestedInput
    supplies?: SupplyUncheckedUpdateManyWithoutOrganizationNestedInput
    users?: UserUncheckedUpdateManyWithoutOrganizationNestedInput
    supplyOrders?: SupplyOrderUncheckedUpdateManyWithoutOrganizationNestedInput
    partnerSupplyOrders?: SupplyOrderUncheckedUpdateManyWithoutPartnerNestedInput
    fulfillmentSupplyOrders?: SupplyOrderUncheckedUpdateManyWithoutFulfillmentCenterNestedInput
    wildberriesSupplies?: WildberriesSupplyUncheckedUpdateManyWithoutOrganizationNestedInput
    supplySuppliers?: SupplySupplierUncheckedUpdateManyWithoutOrganizationNestedInput
  }

  export type SupplyOrderItemCreateWithoutSupplyOrderInput = {
    id?: string
    quantity: number
    price: Decimal | DecimalJsLike | number | string
    totalPrice: Decimal | DecimalJsLike | number | string
    createdAt?: Date | string
    updatedAt?: Date | string
    product: ProductCreateNestedOneWithoutSupplyOrderItemsInput
  }

  export type SupplyOrderItemUncheckedCreateWithoutSupplyOrderInput = {
    id?: string
    productId: string
    quantity: number
    price: Decimal | DecimalJsLike | number | string
    totalPrice: Decimal | DecimalJsLike | number | string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type SupplyOrderItemCreateOrConnectWithoutSupplyOrderInput = {
    where: SupplyOrderItemWhereUniqueInput
    create: XOR<SupplyOrderItemCreateWithoutSupplyOrderInput, SupplyOrderItemUncheckedCreateWithoutSupplyOrderInput>
  }

  export type SupplyOrderItemCreateManySupplyOrderInputEnvelope = {
    data: SupplyOrderItemCreateManySupplyOrderInput | SupplyOrderItemCreateManySupplyOrderInput[]
    skipDuplicates?: boolean
  }

  export type OrganizationCreateWithoutSupplyOrdersInput = {
    id?: string
    inn: string
    kpp?: string | null
    name?: string | null
    fullName?: string | null
    ogrn?: string | null
    ogrnDate?: Date | string | null
    type: $Enums.OrganizationType
    createdAt?: Date | string
    updatedAt?: Date | string
    address?: string | null
    addressFull?: string | null
    status?: string | null
    actualityDate?: Date | string | null
    registrationDate?: Date | string | null
    liquidationDate?: Date | string | null
    managementName?: string | null
    managementPost?: string | null
    opfCode?: string | null
    opfFull?: string | null
    opfShort?: string | null
    okato?: string | null
    oktmo?: string | null
    okpo?: string | null
    okved?: string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: number | null
    revenue?: bigint | number | null
    taxSystem?: string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyCreateNestedManyWithoutOrganizationInput
    carts?: CartCreateNestedOneWithoutOrganizationInput
    counterpartyOf?: CounterpartyCreateNestedManyWithoutCounterpartyInput
    organizationCounterparties?: CounterpartyCreateNestedManyWithoutOrganizationInput
    receivedRequests?: CounterpartyRequestCreateNestedManyWithoutReceiverInput
    sentRequests?: CounterpartyRequestCreateNestedManyWithoutSenderInput
    employees?: EmployeeCreateNestedManyWithoutOrganizationInput
    favorites?: FavoritesCreateNestedManyWithoutOrganizationInput
    receivedMessages?: MessageCreateNestedManyWithoutReceiverOrganizationInput
    sentMessages?: MessageCreateNestedManyWithoutSenderOrganizationInput
    products?: ProductCreateNestedManyWithoutOrganizationInput
    services?: ServiceCreateNestedManyWithoutOrganizationInput
    supplies?: SupplyCreateNestedManyWithoutOrganizationInput
    users?: UserCreateNestedManyWithoutOrganizationInput
    logistics?: LogisticsCreateNestedManyWithoutOrganizationInput
    partnerSupplyOrders?: SupplyOrderCreateNestedManyWithoutPartnerInput
    fulfillmentSupplyOrders?: SupplyOrderCreateNestedManyWithoutFulfillmentCenterInput
    wildberriesSupplies?: WildberriesSupplyCreateNestedManyWithoutOrganizationInput
    supplySuppliers?: SupplySupplierCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationUncheckedCreateWithoutSupplyOrdersInput = {
    id?: string
    inn: string
    kpp?: string | null
    name?: string | null
    fullName?: string | null
    ogrn?: string | null
    ogrnDate?: Date | string | null
    type: $Enums.OrganizationType
    createdAt?: Date | string
    updatedAt?: Date | string
    address?: string | null
    addressFull?: string | null
    status?: string | null
    actualityDate?: Date | string | null
    registrationDate?: Date | string | null
    liquidationDate?: Date | string | null
    managementName?: string | null
    managementPost?: string | null
    opfCode?: string | null
    opfFull?: string | null
    opfShort?: string | null
    okato?: string | null
    oktmo?: string | null
    okpo?: string | null
    okved?: string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: number | null
    revenue?: bigint | number | null
    taxSystem?: string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUncheckedCreateNestedManyWithoutOrganizationInput
    carts?: CartUncheckedCreateNestedOneWithoutOrganizationInput
    counterpartyOf?: CounterpartyUncheckedCreateNestedManyWithoutCounterpartyInput
    organizationCounterparties?: CounterpartyUncheckedCreateNestedManyWithoutOrganizationInput
    receivedRequests?: CounterpartyRequestUncheckedCreateNestedManyWithoutReceiverInput
    sentRequests?: CounterpartyRequestUncheckedCreateNestedManyWithoutSenderInput
    employees?: EmployeeUncheckedCreateNestedManyWithoutOrganizationInput
    favorites?: FavoritesUncheckedCreateNestedManyWithoutOrganizationInput
    receivedMessages?: MessageUncheckedCreateNestedManyWithoutReceiverOrganizationInput
    sentMessages?: MessageUncheckedCreateNestedManyWithoutSenderOrganizationInput
    products?: ProductUncheckedCreateNestedManyWithoutOrganizationInput
    services?: ServiceUncheckedCreateNestedManyWithoutOrganizationInput
    supplies?: SupplyUncheckedCreateNestedManyWithoutOrganizationInput
    users?: UserUncheckedCreateNestedManyWithoutOrganizationInput
    logistics?: LogisticsUncheckedCreateNestedManyWithoutOrganizationInput
    partnerSupplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutPartnerInput
    fulfillmentSupplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutFulfillmentCenterInput
    wildberriesSupplies?: WildberriesSupplyUncheckedCreateNestedManyWithoutOrganizationInput
    supplySuppliers?: SupplySupplierUncheckedCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationCreateOrConnectWithoutSupplyOrdersInput = {
    where: OrganizationWhereUniqueInput
    create: XOR<OrganizationCreateWithoutSupplyOrdersInput, OrganizationUncheckedCreateWithoutSupplyOrdersInput>
  }

  export type OrganizationCreateWithoutPartnerSupplyOrdersInput = {
    id?: string
    inn: string
    kpp?: string | null
    name?: string | null
    fullName?: string | null
    ogrn?: string | null
    ogrnDate?: Date | string | null
    type: $Enums.OrganizationType
    createdAt?: Date | string
    updatedAt?: Date | string
    address?: string | null
    addressFull?: string | null
    status?: string | null
    actualityDate?: Date | string | null
    registrationDate?: Date | string | null
    liquidationDate?: Date | string | null
    managementName?: string | null
    managementPost?: string | null
    opfCode?: string | null
    opfFull?: string | null
    opfShort?: string | null
    okato?: string | null
    oktmo?: string | null
    okpo?: string | null
    okved?: string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: number | null
    revenue?: bigint | number | null
    taxSystem?: string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyCreateNestedManyWithoutOrganizationInput
    carts?: CartCreateNestedOneWithoutOrganizationInput
    counterpartyOf?: CounterpartyCreateNestedManyWithoutCounterpartyInput
    organizationCounterparties?: CounterpartyCreateNestedManyWithoutOrganizationInput
    receivedRequests?: CounterpartyRequestCreateNestedManyWithoutReceiverInput
    sentRequests?: CounterpartyRequestCreateNestedManyWithoutSenderInput
    employees?: EmployeeCreateNestedManyWithoutOrganizationInput
    favorites?: FavoritesCreateNestedManyWithoutOrganizationInput
    receivedMessages?: MessageCreateNestedManyWithoutReceiverOrganizationInput
    sentMessages?: MessageCreateNestedManyWithoutSenderOrganizationInput
    products?: ProductCreateNestedManyWithoutOrganizationInput
    services?: ServiceCreateNestedManyWithoutOrganizationInput
    supplies?: SupplyCreateNestedManyWithoutOrganizationInput
    users?: UserCreateNestedManyWithoutOrganizationInput
    logistics?: LogisticsCreateNestedManyWithoutOrganizationInput
    supplyOrders?: SupplyOrderCreateNestedManyWithoutOrganizationInput
    fulfillmentSupplyOrders?: SupplyOrderCreateNestedManyWithoutFulfillmentCenterInput
    wildberriesSupplies?: WildberriesSupplyCreateNestedManyWithoutOrganizationInput
    supplySuppliers?: SupplySupplierCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationUncheckedCreateWithoutPartnerSupplyOrdersInput = {
    id?: string
    inn: string
    kpp?: string | null
    name?: string | null
    fullName?: string | null
    ogrn?: string | null
    ogrnDate?: Date | string | null
    type: $Enums.OrganizationType
    createdAt?: Date | string
    updatedAt?: Date | string
    address?: string | null
    addressFull?: string | null
    status?: string | null
    actualityDate?: Date | string | null
    registrationDate?: Date | string | null
    liquidationDate?: Date | string | null
    managementName?: string | null
    managementPost?: string | null
    opfCode?: string | null
    opfFull?: string | null
    opfShort?: string | null
    okato?: string | null
    oktmo?: string | null
    okpo?: string | null
    okved?: string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: number | null
    revenue?: bigint | number | null
    taxSystem?: string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUncheckedCreateNestedManyWithoutOrganizationInput
    carts?: CartUncheckedCreateNestedOneWithoutOrganizationInput
    counterpartyOf?: CounterpartyUncheckedCreateNestedManyWithoutCounterpartyInput
    organizationCounterparties?: CounterpartyUncheckedCreateNestedManyWithoutOrganizationInput
    receivedRequests?: CounterpartyRequestUncheckedCreateNestedManyWithoutReceiverInput
    sentRequests?: CounterpartyRequestUncheckedCreateNestedManyWithoutSenderInput
    employees?: EmployeeUncheckedCreateNestedManyWithoutOrganizationInput
    favorites?: FavoritesUncheckedCreateNestedManyWithoutOrganizationInput
    receivedMessages?: MessageUncheckedCreateNestedManyWithoutReceiverOrganizationInput
    sentMessages?: MessageUncheckedCreateNestedManyWithoutSenderOrganizationInput
    products?: ProductUncheckedCreateNestedManyWithoutOrganizationInput
    services?: ServiceUncheckedCreateNestedManyWithoutOrganizationInput
    supplies?: SupplyUncheckedCreateNestedManyWithoutOrganizationInput
    users?: UserUncheckedCreateNestedManyWithoutOrganizationInput
    logistics?: LogisticsUncheckedCreateNestedManyWithoutOrganizationInput
    supplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutOrganizationInput
    fulfillmentSupplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutFulfillmentCenterInput
    wildberriesSupplies?: WildberriesSupplyUncheckedCreateNestedManyWithoutOrganizationInput
    supplySuppliers?: SupplySupplierUncheckedCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationCreateOrConnectWithoutPartnerSupplyOrdersInput = {
    where: OrganizationWhereUniqueInput
    create: XOR<OrganizationCreateWithoutPartnerSupplyOrdersInput, OrganizationUncheckedCreateWithoutPartnerSupplyOrdersInput>
  }

  export type OrganizationCreateWithoutFulfillmentSupplyOrdersInput = {
    id?: string
    inn: string
    kpp?: string | null
    name?: string | null
    fullName?: string | null
    ogrn?: string | null
    ogrnDate?: Date | string | null
    type: $Enums.OrganizationType
    createdAt?: Date | string
    updatedAt?: Date | string
    address?: string | null
    addressFull?: string | null
    status?: string | null
    actualityDate?: Date | string | null
    registrationDate?: Date | string | null
    liquidationDate?: Date | string | null
    managementName?: string | null
    managementPost?: string | null
    opfCode?: string | null
    opfFull?: string | null
    opfShort?: string | null
    okato?: string | null
    oktmo?: string | null
    okpo?: string | null
    okved?: string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: number | null
    revenue?: bigint | number | null
    taxSystem?: string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyCreateNestedManyWithoutOrganizationInput
    carts?: CartCreateNestedOneWithoutOrganizationInput
    counterpartyOf?: CounterpartyCreateNestedManyWithoutCounterpartyInput
    organizationCounterparties?: CounterpartyCreateNestedManyWithoutOrganizationInput
    receivedRequests?: CounterpartyRequestCreateNestedManyWithoutReceiverInput
    sentRequests?: CounterpartyRequestCreateNestedManyWithoutSenderInput
    employees?: EmployeeCreateNestedManyWithoutOrganizationInput
    favorites?: FavoritesCreateNestedManyWithoutOrganizationInput
    receivedMessages?: MessageCreateNestedManyWithoutReceiverOrganizationInput
    sentMessages?: MessageCreateNestedManyWithoutSenderOrganizationInput
    products?: ProductCreateNestedManyWithoutOrganizationInput
    services?: ServiceCreateNestedManyWithoutOrganizationInput
    supplies?: SupplyCreateNestedManyWithoutOrganizationInput
    users?: UserCreateNestedManyWithoutOrganizationInput
    logistics?: LogisticsCreateNestedManyWithoutOrganizationInput
    supplyOrders?: SupplyOrderCreateNestedManyWithoutOrganizationInput
    partnerSupplyOrders?: SupplyOrderCreateNestedManyWithoutPartnerInput
    wildberriesSupplies?: WildberriesSupplyCreateNestedManyWithoutOrganizationInput
    supplySuppliers?: SupplySupplierCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationUncheckedCreateWithoutFulfillmentSupplyOrdersInput = {
    id?: string
    inn: string
    kpp?: string | null
    name?: string | null
    fullName?: string | null
    ogrn?: string | null
    ogrnDate?: Date | string | null
    type: $Enums.OrganizationType
    createdAt?: Date | string
    updatedAt?: Date | string
    address?: string | null
    addressFull?: string | null
    status?: string | null
    actualityDate?: Date | string | null
    registrationDate?: Date | string | null
    liquidationDate?: Date | string | null
    managementName?: string | null
    managementPost?: string | null
    opfCode?: string | null
    opfFull?: string | null
    opfShort?: string | null
    okato?: string | null
    oktmo?: string | null
    okpo?: string | null
    okved?: string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: number | null
    revenue?: bigint | number | null
    taxSystem?: string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUncheckedCreateNestedManyWithoutOrganizationInput
    carts?: CartUncheckedCreateNestedOneWithoutOrganizationInput
    counterpartyOf?: CounterpartyUncheckedCreateNestedManyWithoutCounterpartyInput
    organizationCounterparties?: CounterpartyUncheckedCreateNestedManyWithoutOrganizationInput
    receivedRequests?: CounterpartyRequestUncheckedCreateNestedManyWithoutReceiverInput
    sentRequests?: CounterpartyRequestUncheckedCreateNestedManyWithoutSenderInput
    employees?: EmployeeUncheckedCreateNestedManyWithoutOrganizationInput
    favorites?: FavoritesUncheckedCreateNestedManyWithoutOrganizationInput
    receivedMessages?: MessageUncheckedCreateNestedManyWithoutReceiverOrganizationInput
    sentMessages?: MessageUncheckedCreateNestedManyWithoutSenderOrganizationInput
    products?: ProductUncheckedCreateNestedManyWithoutOrganizationInput
    services?: ServiceUncheckedCreateNestedManyWithoutOrganizationInput
    supplies?: SupplyUncheckedCreateNestedManyWithoutOrganizationInput
    users?: UserUncheckedCreateNestedManyWithoutOrganizationInput
    logistics?: LogisticsUncheckedCreateNestedManyWithoutOrganizationInput
    supplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutOrganizationInput
    partnerSupplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutPartnerInput
    wildberriesSupplies?: WildberriesSupplyUncheckedCreateNestedManyWithoutOrganizationInput
    supplySuppliers?: SupplySupplierUncheckedCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationCreateOrConnectWithoutFulfillmentSupplyOrdersInput = {
    where: OrganizationWhereUniqueInput
    create: XOR<OrganizationCreateWithoutFulfillmentSupplyOrdersInput, OrganizationUncheckedCreateWithoutFulfillmentSupplyOrdersInput>
  }

  export type SupplyOrderItemUpsertWithWhereUniqueWithoutSupplyOrderInput = {
    where: SupplyOrderItemWhereUniqueInput
    update: XOR<SupplyOrderItemUpdateWithoutSupplyOrderInput, SupplyOrderItemUncheckedUpdateWithoutSupplyOrderInput>
    create: XOR<SupplyOrderItemCreateWithoutSupplyOrderInput, SupplyOrderItemUncheckedCreateWithoutSupplyOrderInput>
  }

  export type SupplyOrderItemUpdateWithWhereUniqueWithoutSupplyOrderInput = {
    where: SupplyOrderItemWhereUniqueInput
    data: XOR<SupplyOrderItemUpdateWithoutSupplyOrderInput, SupplyOrderItemUncheckedUpdateWithoutSupplyOrderInput>
  }

  export type SupplyOrderItemUpdateManyWithWhereWithoutSupplyOrderInput = {
    where: SupplyOrderItemScalarWhereInput
    data: XOR<SupplyOrderItemUpdateManyMutationInput, SupplyOrderItemUncheckedUpdateManyWithoutSupplyOrderInput>
  }

  export type OrganizationUpsertWithoutSupplyOrdersInput = {
    update: XOR<OrganizationUpdateWithoutSupplyOrdersInput, OrganizationUncheckedUpdateWithoutSupplyOrdersInput>
    create: XOR<OrganizationCreateWithoutSupplyOrdersInput, OrganizationUncheckedCreateWithoutSupplyOrdersInput>
    where?: OrganizationWhereInput
  }

  export type OrganizationUpdateToOneWithWhereWithoutSupplyOrdersInput = {
    where?: OrganizationWhereInput
    data: XOR<OrganizationUpdateWithoutSupplyOrdersInput, OrganizationUncheckedUpdateWithoutSupplyOrdersInput>
  }

  export type OrganizationUpdateWithoutSupplyOrdersInput = {
    id?: StringFieldUpdateOperationsInput | string
    inn?: StringFieldUpdateOperationsInput | string
    kpp?: NullableStringFieldUpdateOperationsInput | string | null
    name?: NullableStringFieldUpdateOperationsInput | string | null
    fullName?: NullableStringFieldUpdateOperationsInput | string | null
    ogrn?: NullableStringFieldUpdateOperationsInput | string | null
    ogrnDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    type?: EnumOrganizationTypeFieldUpdateOperationsInput | $Enums.OrganizationType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    address?: NullableStringFieldUpdateOperationsInput | string | null
    addressFull?: NullableStringFieldUpdateOperationsInput | string | null
    status?: NullableStringFieldUpdateOperationsInput | string | null
    actualityDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    registrationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    liquidationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managementName?: NullableStringFieldUpdateOperationsInput | string | null
    managementPost?: NullableStringFieldUpdateOperationsInput | string | null
    opfCode?: NullableStringFieldUpdateOperationsInput | string | null
    opfFull?: NullableStringFieldUpdateOperationsInput | string | null
    opfShort?: NullableStringFieldUpdateOperationsInput | string | null
    okato?: NullableStringFieldUpdateOperationsInput | string | null
    oktmo?: NullableStringFieldUpdateOperationsInput | string | null
    okpo?: NullableStringFieldUpdateOperationsInput | string | null
    okved?: NullableStringFieldUpdateOperationsInput | string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: NullableIntFieldUpdateOperationsInput | number | null
    revenue?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    taxSystem?: NullableStringFieldUpdateOperationsInput | string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUpdateManyWithoutOrganizationNestedInput
    carts?: CartUpdateOneWithoutOrganizationNestedInput
    counterpartyOf?: CounterpartyUpdateManyWithoutCounterpartyNestedInput
    organizationCounterparties?: CounterpartyUpdateManyWithoutOrganizationNestedInput
    receivedRequests?: CounterpartyRequestUpdateManyWithoutReceiverNestedInput
    sentRequests?: CounterpartyRequestUpdateManyWithoutSenderNestedInput
    employees?: EmployeeUpdateManyWithoutOrganizationNestedInput
    favorites?: FavoritesUpdateManyWithoutOrganizationNestedInput
    receivedMessages?: MessageUpdateManyWithoutReceiverOrganizationNestedInput
    sentMessages?: MessageUpdateManyWithoutSenderOrganizationNestedInput
    products?: ProductUpdateManyWithoutOrganizationNestedInput
    services?: ServiceUpdateManyWithoutOrganizationNestedInput
    supplies?: SupplyUpdateManyWithoutOrganizationNestedInput
    users?: UserUpdateManyWithoutOrganizationNestedInput
    logistics?: LogisticsUpdateManyWithoutOrganizationNestedInput
    partnerSupplyOrders?: SupplyOrderUpdateManyWithoutPartnerNestedInput
    fulfillmentSupplyOrders?: SupplyOrderUpdateManyWithoutFulfillmentCenterNestedInput
    wildberriesSupplies?: WildberriesSupplyUpdateManyWithoutOrganizationNestedInput
    supplySuppliers?: SupplySupplierUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationUncheckedUpdateWithoutSupplyOrdersInput = {
    id?: StringFieldUpdateOperationsInput | string
    inn?: StringFieldUpdateOperationsInput | string
    kpp?: NullableStringFieldUpdateOperationsInput | string | null
    name?: NullableStringFieldUpdateOperationsInput | string | null
    fullName?: NullableStringFieldUpdateOperationsInput | string | null
    ogrn?: NullableStringFieldUpdateOperationsInput | string | null
    ogrnDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    type?: EnumOrganizationTypeFieldUpdateOperationsInput | $Enums.OrganizationType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    address?: NullableStringFieldUpdateOperationsInput | string | null
    addressFull?: NullableStringFieldUpdateOperationsInput | string | null
    status?: NullableStringFieldUpdateOperationsInput | string | null
    actualityDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    registrationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    liquidationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managementName?: NullableStringFieldUpdateOperationsInput | string | null
    managementPost?: NullableStringFieldUpdateOperationsInput | string | null
    opfCode?: NullableStringFieldUpdateOperationsInput | string | null
    opfFull?: NullableStringFieldUpdateOperationsInput | string | null
    opfShort?: NullableStringFieldUpdateOperationsInput | string | null
    okato?: NullableStringFieldUpdateOperationsInput | string | null
    oktmo?: NullableStringFieldUpdateOperationsInput | string | null
    okpo?: NullableStringFieldUpdateOperationsInput | string | null
    okved?: NullableStringFieldUpdateOperationsInput | string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: NullableIntFieldUpdateOperationsInput | number | null
    revenue?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    taxSystem?: NullableStringFieldUpdateOperationsInput | string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUncheckedUpdateManyWithoutOrganizationNestedInput
    carts?: CartUncheckedUpdateOneWithoutOrganizationNestedInput
    counterpartyOf?: CounterpartyUncheckedUpdateManyWithoutCounterpartyNestedInput
    organizationCounterparties?: CounterpartyUncheckedUpdateManyWithoutOrganizationNestedInput
    receivedRequests?: CounterpartyRequestUncheckedUpdateManyWithoutReceiverNestedInput
    sentRequests?: CounterpartyRequestUncheckedUpdateManyWithoutSenderNestedInput
    employees?: EmployeeUncheckedUpdateManyWithoutOrganizationNestedInput
    favorites?: FavoritesUncheckedUpdateManyWithoutOrganizationNestedInput
    receivedMessages?: MessageUncheckedUpdateManyWithoutReceiverOrganizationNestedInput
    sentMessages?: MessageUncheckedUpdateManyWithoutSenderOrganizationNestedInput
    products?: ProductUncheckedUpdateManyWithoutOrganizationNestedInput
    services?: ServiceUncheckedUpdateManyWithoutOrganizationNestedInput
    supplies?: SupplyUncheckedUpdateManyWithoutOrganizationNestedInput
    users?: UserUncheckedUpdateManyWithoutOrganizationNestedInput
    logistics?: LogisticsUncheckedUpdateManyWithoutOrganizationNestedInput
    partnerSupplyOrders?: SupplyOrderUncheckedUpdateManyWithoutPartnerNestedInput
    fulfillmentSupplyOrders?: SupplyOrderUncheckedUpdateManyWithoutFulfillmentCenterNestedInput
    wildberriesSupplies?: WildberriesSupplyUncheckedUpdateManyWithoutOrganizationNestedInput
    supplySuppliers?: SupplySupplierUncheckedUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationUpsertWithoutPartnerSupplyOrdersInput = {
    update: XOR<OrganizationUpdateWithoutPartnerSupplyOrdersInput, OrganizationUncheckedUpdateWithoutPartnerSupplyOrdersInput>
    create: XOR<OrganizationCreateWithoutPartnerSupplyOrdersInput, OrganizationUncheckedCreateWithoutPartnerSupplyOrdersInput>
    where?: OrganizationWhereInput
  }

  export type OrganizationUpdateToOneWithWhereWithoutPartnerSupplyOrdersInput = {
    where?: OrganizationWhereInput
    data: XOR<OrganizationUpdateWithoutPartnerSupplyOrdersInput, OrganizationUncheckedUpdateWithoutPartnerSupplyOrdersInput>
  }

  export type OrganizationUpdateWithoutPartnerSupplyOrdersInput = {
    id?: StringFieldUpdateOperationsInput | string
    inn?: StringFieldUpdateOperationsInput | string
    kpp?: NullableStringFieldUpdateOperationsInput | string | null
    name?: NullableStringFieldUpdateOperationsInput | string | null
    fullName?: NullableStringFieldUpdateOperationsInput | string | null
    ogrn?: NullableStringFieldUpdateOperationsInput | string | null
    ogrnDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    type?: EnumOrganizationTypeFieldUpdateOperationsInput | $Enums.OrganizationType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    address?: NullableStringFieldUpdateOperationsInput | string | null
    addressFull?: NullableStringFieldUpdateOperationsInput | string | null
    status?: NullableStringFieldUpdateOperationsInput | string | null
    actualityDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    registrationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    liquidationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managementName?: NullableStringFieldUpdateOperationsInput | string | null
    managementPost?: NullableStringFieldUpdateOperationsInput | string | null
    opfCode?: NullableStringFieldUpdateOperationsInput | string | null
    opfFull?: NullableStringFieldUpdateOperationsInput | string | null
    opfShort?: NullableStringFieldUpdateOperationsInput | string | null
    okato?: NullableStringFieldUpdateOperationsInput | string | null
    oktmo?: NullableStringFieldUpdateOperationsInput | string | null
    okpo?: NullableStringFieldUpdateOperationsInput | string | null
    okved?: NullableStringFieldUpdateOperationsInput | string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: NullableIntFieldUpdateOperationsInput | number | null
    revenue?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    taxSystem?: NullableStringFieldUpdateOperationsInput | string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUpdateManyWithoutOrganizationNestedInput
    carts?: CartUpdateOneWithoutOrganizationNestedInput
    counterpartyOf?: CounterpartyUpdateManyWithoutCounterpartyNestedInput
    organizationCounterparties?: CounterpartyUpdateManyWithoutOrganizationNestedInput
    receivedRequests?: CounterpartyRequestUpdateManyWithoutReceiverNestedInput
    sentRequests?: CounterpartyRequestUpdateManyWithoutSenderNestedInput
    employees?: EmployeeUpdateManyWithoutOrganizationNestedInput
    favorites?: FavoritesUpdateManyWithoutOrganizationNestedInput
    receivedMessages?: MessageUpdateManyWithoutReceiverOrganizationNestedInput
    sentMessages?: MessageUpdateManyWithoutSenderOrganizationNestedInput
    products?: ProductUpdateManyWithoutOrganizationNestedInput
    services?: ServiceUpdateManyWithoutOrganizationNestedInput
    supplies?: SupplyUpdateManyWithoutOrganizationNestedInput
    users?: UserUpdateManyWithoutOrganizationNestedInput
    logistics?: LogisticsUpdateManyWithoutOrganizationNestedInput
    supplyOrders?: SupplyOrderUpdateManyWithoutOrganizationNestedInput
    fulfillmentSupplyOrders?: SupplyOrderUpdateManyWithoutFulfillmentCenterNestedInput
    wildberriesSupplies?: WildberriesSupplyUpdateManyWithoutOrganizationNestedInput
    supplySuppliers?: SupplySupplierUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationUncheckedUpdateWithoutPartnerSupplyOrdersInput = {
    id?: StringFieldUpdateOperationsInput | string
    inn?: StringFieldUpdateOperationsInput | string
    kpp?: NullableStringFieldUpdateOperationsInput | string | null
    name?: NullableStringFieldUpdateOperationsInput | string | null
    fullName?: NullableStringFieldUpdateOperationsInput | string | null
    ogrn?: NullableStringFieldUpdateOperationsInput | string | null
    ogrnDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    type?: EnumOrganizationTypeFieldUpdateOperationsInput | $Enums.OrganizationType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    address?: NullableStringFieldUpdateOperationsInput | string | null
    addressFull?: NullableStringFieldUpdateOperationsInput | string | null
    status?: NullableStringFieldUpdateOperationsInput | string | null
    actualityDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    registrationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    liquidationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managementName?: NullableStringFieldUpdateOperationsInput | string | null
    managementPost?: NullableStringFieldUpdateOperationsInput | string | null
    opfCode?: NullableStringFieldUpdateOperationsInput | string | null
    opfFull?: NullableStringFieldUpdateOperationsInput | string | null
    opfShort?: NullableStringFieldUpdateOperationsInput | string | null
    okato?: NullableStringFieldUpdateOperationsInput | string | null
    oktmo?: NullableStringFieldUpdateOperationsInput | string | null
    okpo?: NullableStringFieldUpdateOperationsInput | string | null
    okved?: NullableStringFieldUpdateOperationsInput | string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: NullableIntFieldUpdateOperationsInput | number | null
    revenue?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    taxSystem?: NullableStringFieldUpdateOperationsInput | string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUncheckedUpdateManyWithoutOrganizationNestedInput
    carts?: CartUncheckedUpdateOneWithoutOrganizationNestedInput
    counterpartyOf?: CounterpartyUncheckedUpdateManyWithoutCounterpartyNestedInput
    organizationCounterparties?: CounterpartyUncheckedUpdateManyWithoutOrganizationNestedInput
    receivedRequests?: CounterpartyRequestUncheckedUpdateManyWithoutReceiverNestedInput
    sentRequests?: CounterpartyRequestUncheckedUpdateManyWithoutSenderNestedInput
    employees?: EmployeeUncheckedUpdateManyWithoutOrganizationNestedInput
    favorites?: FavoritesUncheckedUpdateManyWithoutOrganizationNestedInput
    receivedMessages?: MessageUncheckedUpdateManyWithoutReceiverOrganizationNestedInput
    sentMessages?: MessageUncheckedUpdateManyWithoutSenderOrganizationNestedInput
    products?: ProductUncheckedUpdateManyWithoutOrganizationNestedInput
    services?: ServiceUncheckedUpdateManyWithoutOrganizationNestedInput
    supplies?: SupplyUncheckedUpdateManyWithoutOrganizationNestedInput
    users?: UserUncheckedUpdateManyWithoutOrganizationNestedInput
    logistics?: LogisticsUncheckedUpdateManyWithoutOrganizationNestedInput
    supplyOrders?: SupplyOrderUncheckedUpdateManyWithoutOrganizationNestedInput
    fulfillmentSupplyOrders?: SupplyOrderUncheckedUpdateManyWithoutFulfillmentCenterNestedInput
    wildberriesSupplies?: WildberriesSupplyUncheckedUpdateManyWithoutOrganizationNestedInput
    supplySuppliers?: SupplySupplierUncheckedUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationUpsertWithoutFulfillmentSupplyOrdersInput = {
    update: XOR<OrganizationUpdateWithoutFulfillmentSupplyOrdersInput, OrganizationUncheckedUpdateWithoutFulfillmentSupplyOrdersInput>
    create: XOR<OrganizationCreateWithoutFulfillmentSupplyOrdersInput, OrganizationUncheckedCreateWithoutFulfillmentSupplyOrdersInput>
    where?: OrganizationWhereInput
  }

  export type OrganizationUpdateToOneWithWhereWithoutFulfillmentSupplyOrdersInput = {
    where?: OrganizationWhereInput
    data: XOR<OrganizationUpdateWithoutFulfillmentSupplyOrdersInput, OrganizationUncheckedUpdateWithoutFulfillmentSupplyOrdersInput>
  }

  export type OrganizationUpdateWithoutFulfillmentSupplyOrdersInput = {
    id?: StringFieldUpdateOperationsInput | string
    inn?: StringFieldUpdateOperationsInput | string
    kpp?: NullableStringFieldUpdateOperationsInput | string | null
    name?: NullableStringFieldUpdateOperationsInput | string | null
    fullName?: NullableStringFieldUpdateOperationsInput | string | null
    ogrn?: NullableStringFieldUpdateOperationsInput | string | null
    ogrnDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    type?: EnumOrganizationTypeFieldUpdateOperationsInput | $Enums.OrganizationType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    address?: NullableStringFieldUpdateOperationsInput | string | null
    addressFull?: NullableStringFieldUpdateOperationsInput | string | null
    status?: NullableStringFieldUpdateOperationsInput | string | null
    actualityDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    registrationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    liquidationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managementName?: NullableStringFieldUpdateOperationsInput | string | null
    managementPost?: NullableStringFieldUpdateOperationsInput | string | null
    opfCode?: NullableStringFieldUpdateOperationsInput | string | null
    opfFull?: NullableStringFieldUpdateOperationsInput | string | null
    opfShort?: NullableStringFieldUpdateOperationsInput | string | null
    okato?: NullableStringFieldUpdateOperationsInput | string | null
    oktmo?: NullableStringFieldUpdateOperationsInput | string | null
    okpo?: NullableStringFieldUpdateOperationsInput | string | null
    okved?: NullableStringFieldUpdateOperationsInput | string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: NullableIntFieldUpdateOperationsInput | number | null
    revenue?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    taxSystem?: NullableStringFieldUpdateOperationsInput | string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUpdateManyWithoutOrganizationNestedInput
    carts?: CartUpdateOneWithoutOrganizationNestedInput
    counterpartyOf?: CounterpartyUpdateManyWithoutCounterpartyNestedInput
    organizationCounterparties?: CounterpartyUpdateManyWithoutOrganizationNestedInput
    receivedRequests?: CounterpartyRequestUpdateManyWithoutReceiverNestedInput
    sentRequests?: CounterpartyRequestUpdateManyWithoutSenderNestedInput
    employees?: EmployeeUpdateManyWithoutOrganizationNestedInput
    favorites?: FavoritesUpdateManyWithoutOrganizationNestedInput
    receivedMessages?: MessageUpdateManyWithoutReceiverOrganizationNestedInput
    sentMessages?: MessageUpdateManyWithoutSenderOrganizationNestedInput
    products?: ProductUpdateManyWithoutOrganizationNestedInput
    services?: ServiceUpdateManyWithoutOrganizationNestedInput
    supplies?: SupplyUpdateManyWithoutOrganizationNestedInput
    users?: UserUpdateManyWithoutOrganizationNestedInput
    logistics?: LogisticsUpdateManyWithoutOrganizationNestedInput
    supplyOrders?: SupplyOrderUpdateManyWithoutOrganizationNestedInput
    partnerSupplyOrders?: SupplyOrderUpdateManyWithoutPartnerNestedInput
    wildberriesSupplies?: WildberriesSupplyUpdateManyWithoutOrganizationNestedInput
    supplySuppliers?: SupplySupplierUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationUncheckedUpdateWithoutFulfillmentSupplyOrdersInput = {
    id?: StringFieldUpdateOperationsInput | string
    inn?: StringFieldUpdateOperationsInput | string
    kpp?: NullableStringFieldUpdateOperationsInput | string | null
    name?: NullableStringFieldUpdateOperationsInput | string | null
    fullName?: NullableStringFieldUpdateOperationsInput | string | null
    ogrn?: NullableStringFieldUpdateOperationsInput | string | null
    ogrnDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    type?: EnumOrganizationTypeFieldUpdateOperationsInput | $Enums.OrganizationType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    address?: NullableStringFieldUpdateOperationsInput | string | null
    addressFull?: NullableStringFieldUpdateOperationsInput | string | null
    status?: NullableStringFieldUpdateOperationsInput | string | null
    actualityDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    registrationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    liquidationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managementName?: NullableStringFieldUpdateOperationsInput | string | null
    managementPost?: NullableStringFieldUpdateOperationsInput | string | null
    opfCode?: NullableStringFieldUpdateOperationsInput | string | null
    opfFull?: NullableStringFieldUpdateOperationsInput | string | null
    opfShort?: NullableStringFieldUpdateOperationsInput | string | null
    okato?: NullableStringFieldUpdateOperationsInput | string | null
    oktmo?: NullableStringFieldUpdateOperationsInput | string | null
    okpo?: NullableStringFieldUpdateOperationsInput | string | null
    okved?: NullableStringFieldUpdateOperationsInput | string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: NullableIntFieldUpdateOperationsInput | number | null
    revenue?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    taxSystem?: NullableStringFieldUpdateOperationsInput | string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUncheckedUpdateManyWithoutOrganizationNestedInput
    carts?: CartUncheckedUpdateOneWithoutOrganizationNestedInput
    counterpartyOf?: CounterpartyUncheckedUpdateManyWithoutCounterpartyNestedInput
    organizationCounterparties?: CounterpartyUncheckedUpdateManyWithoutOrganizationNestedInput
    receivedRequests?: CounterpartyRequestUncheckedUpdateManyWithoutReceiverNestedInput
    sentRequests?: CounterpartyRequestUncheckedUpdateManyWithoutSenderNestedInput
    employees?: EmployeeUncheckedUpdateManyWithoutOrganizationNestedInput
    favorites?: FavoritesUncheckedUpdateManyWithoutOrganizationNestedInput
    receivedMessages?: MessageUncheckedUpdateManyWithoutReceiverOrganizationNestedInput
    sentMessages?: MessageUncheckedUpdateManyWithoutSenderOrganizationNestedInput
    products?: ProductUncheckedUpdateManyWithoutOrganizationNestedInput
    services?: ServiceUncheckedUpdateManyWithoutOrganizationNestedInput
    supplies?: SupplyUncheckedUpdateManyWithoutOrganizationNestedInput
    users?: UserUncheckedUpdateManyWithoutOrganizationNestedInput
    logistics?: LogisticsUncheckedUpdateManyWithoutOrganizationNestedInput
    supplyOrders?: SupplyOrderUncheckedUpdateManyWithoutOrganizationNestedInput
    partnerSupplyOrders?: SupplyOrderUncheckedUpdateManyWithoutPartnerNestedInput
    wildberriesSupplies?: WildberriesSupplyUncheckedUpdateManyWithoutOrganizationNestedInput
    supplySuppliers?: SupplySupplierUncheckedUpdateManyWithoutOrganizationNestedInput
  }

  export type SupplyOrderCreateWithoutItemsInput = {
    id?: string
    deliveryDate: Date | string
    status?: $Enums.SupplyOrderStatus
    totalAmount: Decimal | DecimalJsLike | number | string
    totalItems: number
    createdAt?: Date | string
    updatedAt?: Date | string
    organization: OrganizationCreateNestedOneWithoutSupplyOrdersInput
    partner: OrganizationCreateNestedOneWithoutPartnerSupplyOrdersInput
    fulfillmentCenter?: OrganizationCreateNestedOneWithoutFulfillmentSupplyOrdersInput
  }

  export type SupplyOrderUncheckedCreateWithoutItemsInput = {
    id?: string
    partnerId: string
    deliveryDate: Date | string
    status?: $Enums.SupplyOrderStatus
    totalAmount: Decimal | DecimalJsLike | number | string
    totalItems: number
    fulfillmentCenterId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    organizationId: string
  }

  export type SupplyOrderCreateOrConnectWithoutItemsInput = {
    where: SupplyOrderWhereUniqueInput
    create: XOR<SupplyOrderCreateWithoutItemsInput, SupplyOrderUncheckedCreateWithoutItemsInput>
  }

  export type ProductCreateWithoutSupplyOrderItemsInput = {
    id?: string
    name: string
    article: string
    description?: string | null
    price: Decimal | DecimalJsLike | number | string
    quantity?: number
    brand?: string | null
    color?: string | null
    size?: string | null
    weight?: Decimal | DecimalJsLike | number | string | null
    dimensions?: string | null
    material?: string | null
    images?: JsonNullValueInput | InputJsonValue
    mainImage?: string | null
    isActive?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    cartItems?: CartItemCreateNestedManyWithoutProductInput
    favorites?: FavoritesCreateNestedManyWithoutProductInput
    category?: CategoryCreateNestedOneWithoutProductsInput
    organization: OrganizationCreateNestedOneWithoutProductsInput
  }

  export type ProductUncheckedCreateWithoutSupplyOrderItemsInput = {
    id?: string
    name: string
    article: string
    description?: string | null
    price: Decimal | DecimalJsLike | number | string
    quantity?: number
    categoryId?: string | null
    brand?: string | null
    color?: string | null
    size?: string | null
    weight?: Decimal | DecimalJsLike | number | string | null
    dimensions?: string | null
    material?: string | null
    images?: JsonNullValueInput | InputJsonValue
    mainImage?: string | null
    isActive?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    organizationId: string
    cartItems?: CartItemUncheckedCreateNestedManyWithoutProductInput
    favorites?: FavoritesUncheckedCreateNestedManyWithoutProductInput
  }

  export type ProductCreateOrConnectWithoutSupplyOrderItemsInput = {
    where: ProductWhereUniqueInput
    create: XOR<ProductCreateWithoutSupplyOrderItemsInput, ProductUncheckedCreateWithoutSupplyOrderItemsInput>
  }

  export type SupplyOrderUpsertWithoutItemsInput = {
    update: XOR<SupplyOrderUpdateWithoutItemsInput, SupplyOrderUncheckedUpdateWithoutItemsInput>
    create: XOR<SupplyOrderCreateWithoutItemsInput, SupplyOrderUncheckedCreateWithoutItemsInput>
    where?: SupplyOrderWhereInput
  }

  export type SupplyOrderUpdateToOneWithWhereWithoutItemsInput = {
    where?: SupplyOrderWhereInput
    data: XOR<SupplyOrderUpdateWithoutItemsInput, SupplyOrderUncheckedUpdateWithoutItemsInput>
  }

  export type SupplyOrderUpdateWithoutItemsInput = {
    id?: StringFieldUpdateOperationsInput | string
    deliveryDate?: DateTimeFieldUpdateOperationsInput | Date | string
    status?: EnumSupplyOrderStatusFieldUpdateOperationsInput | $Enums.SupplyOrderStatus
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    totalItems?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organization?: OrganizationUpdateOneRequiredWithoutSupplyOrdersNestedInput
    partner?: OrganizationUpdateOneRequiredWithoutPartnerSupplyOrdersNestedInput
    fulfillmentCenter?: OrganizationUpdateOneWithoutFulfillmentSupplyOrdersNestedInput
  }

  export type SupplyOrderUncheckedUpdateWithoutItemsInput = {
    id?: StringFieldUpdateOperationsInput | string
    partnerId?: StringFieldUpdateOperationsInput | string
    deliveryDate?: DateTimeFieldUpdateOperationsInput | Date | string
    status?: EnumSupplyOrderStatusFieldUpdateOperationsInput | $Enums.SupplyOrderStatus
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    totalItems?: IntFieldUpdateOperationsInput | number
    fulfillmentCenterId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organizationId?: StringFieldUpdateOperationsInput | string
  }

  export type ProductUpsertWithoutSupplyOrderItemsInput = {
    update: XOR<ProductUpdateWithoutSupplyOrderItemsInput, ProductUncheckedUpdateWithoutSupplyOrderItemsInput>
    create: XOR<ProductCreateWithoutSupplyOrderItemsInput, ProductUncheckedCreateWithoutSupplyOrderItemsInput>
    where?: ProductWhereInput
  }

  export type ProductUpdateToOneWithWhereWithoutSupplyOrderItemsInput = {
    where?: ProductWhereInput
    data: XOR<ProductUpdateWithoutSupplyOrderItemsInput, ProductUncheckedUpdateWithoutSupplyOrderItemsInput>
  }

  export type ProductUpdateWithoutSupplyOrderItemsInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    article?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    price?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    quantity?: IntFieldUpdateOperationsInput | number
    brand?: NullableStringFieldUpdateOperationsInput | string | null
    color?: NullableStringFieldUpdateOperationsInput | string | null
    size?: NullableStringFieldUpdateOperationsInput | string | null
    weight?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    dimensions?: NullableStringFieldUpdateOperationsInput | string | null
    material?: NullableStringFieldUpdateOperationsInput | string | null
    images?: JsonNullValueInput | InputJsonValue
    mainImage?: NullableStringFieldUpdateOperationsInput | string | null
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    cartItems?: CartItemUpdateManyWithoutProductNestedInput
    favorites?: FavoritesUpdateManyWithoutProductNestedInput
    category?: CategoryUpdateOneWithoutProductsNestedInput
    organization?: OrganizationUpdateOneRequiredWithoutProductsNestedInput
  }

  export type ProductUncheckedUpdateWithoutSupplyOrderItemsInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    article?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    price?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    quantity?: IntFieldUpdateOperationsInput | number
    categoryId?: NullableStringFieldUpdateOperationsInput | string | null
    brand?: NullableStringFieldUpdateOperationsInput | string | null
    color?: NullableStringFieldUpdateOperationsInput | string | null
    size?: NullableStringFieldUpdateOperationsInput | string | null
    weight?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    dimensions?: NullableStringFieldUpdateOperationsInput | string | null
    material?: NullableStringFieldUpdateOperationsInput | string | null
    images?: JsonNullValueInput | InputJsonValue
    mainImage?: NullableStringFieldUpdateOperationsInput | string | null
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organizationId?: StringFieldUpdateOperationsInput | string
    cartItems?: CartItemUncheckedUpdateManyWithoutProductNestedInput
    favorites?: FavoritesUncheckedUpdateManyWithoutProductNestedInput
  }

  export type OrganizationCreateWithoutSupplySuppliersInput = {
    id?: string
    inn: string
    kpp?: string | null
    name?: string | null
    fullName?: string | null
    ogrn?: string | null
    ogrnDate?: Date | string | null
    type: $Enums.OrganizationType
    createdAt?: Date | string
    updatedAt?: Date | string
    address?: string | null
    addressFull?: string | null
    status?: string | null
    actualityDate?: Date | string | null
    registrationDate?: Date | string | null
    liquidationDate?: Date | string | null
    managementName?: string | null
    managementPost?: string | null
    opfCode?: string | null
    opfFull?: string | null
    opfShort?: string | null
    okato?: string | null
    oktmo?: string | null
    okpo?: string | null
    okved?: string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: number | null
    revenue?: bigint | number | null
    taxSystem?: string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyCreateNestedManyWithoutOrganizationInput
    carts?: CartCreateNestedOneWithoutOrganizationInput
    counterpartyOf?: CounterpartyCreateNestedManyWithoutCounterpartyInput
    organizationCounterparties?: CounterpartyCreateNestedManyWithoutOrganizationInput
    receivedRequests?: CounterpartyRequestCreateNestedManyWithoutReceiverInput
    sentRequests?: CounterpartyRequestCreateNestedManyWithoutSenderInput
    employees?: EmployeeCreateNestedManyWithoutOrganizationInput
    favorites?: FavoritesCreateNestedManyWithoutOrganizationInput
    receivedMessages?: MessageCreateNestedManyWithoutReceiverOrganizationInput
    sentMessages?: MessageCreateNestedManyWithoutSenderOrganizationInput
    products?: ProductCreateNestedManyWithoutOrganizationInput
    services?: ServiceCreateNestedManyWithoutOrganizationInput
    supplies?: SupplyCreateNestedManyWithoutOrganizationInput
    users?: UserCreateNestedManyWithoutOrganizationInput
    logistics?: LogisticsCreateNestedManyWithoutOrganizationInput
    supplyOrders?: SupplyOrderCreateNestedManyWithoutOrganizationInput
    partnerSupplyOrders?: SupplyOrderCreateNestedManyWithoutPartnerInput
    fulfillmentSupplyOrders?: SupplyOrderCreateNestedManyWithoutFulfillmentCenterInput
    wildberriesSupplies?: WildberriesSupplyCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationUncheckedCreateWithoutSupplySuppliersInput = {
    id?: string
    inn: string
    kpp?: string | null
    name?: string | null
    fullName?: string | null
    ogrn?: string | null
    ogrnDate?: Date | string | null
    type: $Enums.OrganizationType
    createdAt?: Date | string
    updatedAt?: Date | string
    address?: string | null
    addressFull?: string | null
    status?: string | null
    actualityDate?: Date | string | null
    registrationDate?: Date | string | null
    liquidationDate?: Date | string | null
    managementName?: string | null
    managementPost?: string | null
    opfCode?: string | null
    opfFull?: string | null
    opfShort?: string | null
    okato?: string | null
    oktmo?: string | null
    okpo?: string | null
    okved?: string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: number | null
    revenue?: bigint | number | null
    taxSystem?: string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUncheckedCreateNestedManyWithoutOrganizationInput
    carts?: CartUncheckedCreateNestedOneWithoutOrganizationInput
    counterpartyOf?: CounterpartyUncheckedCreateNestedManyWithoutCounterpartyInput
    organizationCounterparties?: CounterpartyUncheckedCreateNestedManyWithoutOrganizationInput
    receivedRequests?: CounterpartyRequestUncheckedCreateNestedManyWithoutReceiverInput
    sentRequests?: CounterpartyRequestUncheckedCreateNestedManyWithoutSenderInput
    employees?: EmployeeUncheckedCreateNestedManyWithoutOrganizationInput
    favorites?: FavoritesUncheckedCreateNestedManyWithoutOrganizationInput
    receivedMessages?: MessageUncheckedCreateNestedManyWithoutReceiverOrganizationInput
    sentMessages?: MessageUncheckedCreateNestedManyWithoutSenderOrganizationInput
    products?: ProductUncheckedCreateNestedManyWithoutOrganizationInput
    services?: ServiceUncheckedCreateNestedManyWithoutOrganizationInput
    supplies?: SupplyUncheckedCreateNestedManyWithoutOrganizationInput
    users?: UserUncheckedCreateNestedManyWithoutOrganizationInput
    logistics?: LogisticsUncheckedCreateNestedManyWithoutOrganizationInput
    supplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutOrganizationInput
    partnerSupplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutPartnerInput
    fulfillmentSupplyOrders?: SupplyOrderUncheckedCreateNestedManyWithoutFulfillmentCenterInput
    wildberriesSupplies?: WildberriesSupplyUncheckedCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationCreateOrConnectWithoutSupplySuppliersInput = {
    where: OrganizationWhereUniqueInput
    create: XOR<OrganizationCreateWithoutSupplySuppliersInput, OrganizationUncheckedCreateWithoutSupplySuppliersInput>
  }

  export type OrganizationUpsertWithoutSupplySuppliersInput = {
    update: XOR<OrganizationUpdateWithoutSupplySuppliersInput, OrganizationUncheckedUpdateWithoutSupplySuppliersInput>
    create: XOR<OrganizationCreateWithoutSupplySuppliersInput, OrganizationUncheckedCreateWithoutSupplySuppliersInput>
    where?: OrganizationWhereInput
  }

  export type OrganizationUpdateToOneWithWhereWithoutSupplySuppliersInput = {
    where?: OrganizationWhereInput
    data: XOR<OrganizationUpdateWithoutSupplySuppliersInput, OrganizationUncheckedUpdateWithoutSupplySuppliersInput>
  }

  export type OrganizationUpdateWithoutSupplySuppliersInput = {
    id?: StringFieldUpdateOperationsInput | string
    inn?: StringFieldUpdateOperationsInput | string
    kpp?: NullableStringFieldUpdateOperationsInput | string | null
    name?: NullableStringFieldUpdateOperationsInput | string | null
    fullName?: NullableStringFieldUpdateOperationsInput | string | null
    ogrn?: NullableStringFieldUpdateOperationsInput | string | null
    ogrnDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    type?: EnumOrganizationTypeFieldUpdateOperationsInput | $Enums.OrganizationType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    address?: NullableStringFieldUpdateOperationsInput | string | null
    addressFull?: NullableStringFieldUpdateOperationsInput | string | null
    status?: NullableStringFieldUpdateOperationsInput | string | null
    actualityDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    registrationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    liquidationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managementName?: NullableStringFieldUpdateOperationsInput | string | null
    managementPost?: NullableStringFieldUpdateOperationsInput | string | null
    opfCode?: NullableStringFieldUpdateOperationsInput | string | null
    opfFull?: NullableStringFieldUpdateOperationsInput | string | null
    opfShort?: NullableStringFieldUpdateOperationsInput | string | null
    okato?: NullableStringFieldUpdateOperationsInput | string | null
    oktmo?: NullableStringFieldUpdateOperationsInput | string | null
    okpo?: NullableStringFieldUpdateOperationsInput | string | null
    okved?: NullableStringFieldUpdateOperationsInput | string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: NullableIntFieldUpdateOperationsInput | number | null
    revenue?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    taxSystem?: NullableStringFieldUpdateOperationsInput | string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUpdateManyWithoutOrganizationNestedInput
    carts?: CartUpdateOneWithoutOrganizationNestedInput
    counterpartyOf?: CounterpartyUpdateManyWithoutCounterpartyNestedInput
    organizationCounterparties?: CounterpartyUpdateManyWithoutOrganizationNestedInput
    receivedRequests?: CounterpartyRequestUpdateManyWithoutReceiverNestedInput
    sentRequests?: CounterpartyRequestUpdateManyWithoutSenderNestedInput
    employees?: EmployeeUpdateManyWithoutOrganizationNestedInput
    favorites?: FavoritesUpdateManyWithoutOrganizationNestedInput
    receivedMessages?: MessageUpdateManyWithoutReceiverOrganizationNestedInput
    sentMessages?: MessageUpdateManyWithoutSenderOrganizationNestedInput
    products?: ProductUpdateManyWithoutOrganizationNestedInput
    services?: ServiceUpdateManyWithoutOrganizationNestedInput
    supplies?: SupplyUpdateManyWithoutOrganizationNestedInput
    users?: UserUpdateManyWithoutOrganizationNestedInput
    logistics?: LogisticsUpdateManyWithoutOrganizationNestedInput
    supplyOrders?: SupplyOrderUpdateManyWithoutOrganizationNestedInput
    partnerSupplyOrders?: SupplyOrderUpdateManyWithoutPartnerNestedInput
    fulfillmentSupplyOrders?: SupplyOrderUpdateManyWithoutFulfillmentCenterNestedInput
    wildberriesSupplies?: WildberriesSupplyUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationUncheckedUpdateWithoutSupplySuppliersInput = {
    id?: StringFieldUpdateOperationsInput | string
    inn?: StringFieldUpdateOperationsInput | string
    kpp?: NullableStringFieldUpdateOperationsInput | string | null
    name?: NullableStringFieldUpdateOperationsInput | string | null
    fullName?: NullableStringFieldUpdateOperationsInput | string | null
    ogrn?: NullableStringFieldUpdateOperationsInput | string | null
    ogrnDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    type?: EnumOrganizationTypeFieldUpdateOperationsInput | $Enums.OrganizationType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    address?: NullableStringFieldUpdateOperationsInput | string | null
    addressFull?: NullableStringFieldUpdateOperationsInput | string | null
    status?: NullableStringFieldUpdateOperationsInput | string | null
    actualityDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    registrationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    liquidationDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managementName?: NullableStringFieldUpdateOperationsInput | string | null
    managementPost?: NullableStringFieldUpdateOperationsInput | string | null
    opfCode?: NullableStringFieldUpdateOperationsInput | string | null
    opfFull?: NullableStringFieldUpdateOperationsInput | string | null
    opfShort?: NullableStringFieldUpdateOperationsInput | string | null
    okato?: NullableStringFieldUpdateOperationsInput | string | null
    oktmo?: NullableStringFieldUpdateOperationsInput | string | null
    okpo?: NullableStringFieldUpdateOperationsInput | string | null
    okved?: NullableStringFieldUpdateOperationsInput | string | null
    phones?: NullableJsonNullValueInput | InputJsonValue
    emails?: NullableJsonNullValueInput | InputJsonValue
    employeeCount?: NullableIntFieldUpdateOperationsInput | number | null
    revenue?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    taxSystem?: NullableStringFieldUpdateOperationsInput | string | null
    dadataData?: NullableJsonNullValueInput | InputJsonValue
    apiKeys?: ApiKeyUncheckedUpdateManyWithoutOrganizationNestedInput
    carts?: CartUncheckedUpdateOneWithoutOrganizationNestedInput
    counterpartyOf?: CounterpartyUncheckedUpdateManyWithoutCounterpartyNestedInput
    organizationCounterparties?: CounterpartyUncheckedUpdateManyWithoutOrganizationNestedInput
    receivedRequests?: CounterpartyRequestUncheckedUpdateManyWithoutReceiverNestedInput
    sentRequests?: CounterpartyRequestUncheckedUpdateManyWithoutSenderNestedInput
    employees?: EmployeeUncheckedUpdateManyWithoutOrganizationNestedInput
    favorites?: FavoritesUncheckedUpdateManyWithoutOrganizationNestedInput
    receivedMessages?: MessageUncheckedUpdateManyWithoutReceiverOrganizationNestedInput
    sentMessages?: MessageUncheckedUpdateManyWithoutSenderOrganizationNestedInput
    products?: ProductUncheckedUpdateManyWithoutOrganizationNestedInput
    services?: ServiceUncheckedUpdateManyWithoutOrganizationNestedInput
    supplies?: SupplyUncheckedUpdateManyWithoutOrganizationNestedInput
    users?: UserUncheckedUpdateManyWithoutOrganizationNestedInput
    logistics?: LogisticsUncheckedUpdateManyWithoutOrganizationNestedInput
    supplyOrders?: SupplyOrderUncheckedUpdateManyWithoutOrganizationNestedInput
    partnerSupplyOrders?: SupplyOrderUncheckedUpdateManyWithoutPartnerNestedInput
    fulfillmentSupplyOrders?: SupplyOrderUncheckedUpdateManyWithoutFulfillmentCenterNestedInput
    wildberriesSupplies?: WildberriesSupplyUncheckedUpdateManyWithoutOrganizationNestedInput
  }

  export type MessageCreateManySenderInput = {
    id?: string
    content?: string | null
    type?: $Enums.MessageType
    voiceUrl?: string | null
    voiceDuration?: number | null
    fileUrl?: string | null
    fileName?: string | null
    fileSize?: number | null
    fileType?: string | null
    isRead?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    senderOrganizationId: string
    receiverOrganizationId: string
  }

  export type SmsCodeCreateManyUserInput = {
    id?: string
    code: string
    phone: string
    expiresAt: Date | string
    isUsed?: boolean
    attempts?: number
    maxAttempts?: number
    createdAt?: Date | string
  }

  export type MessageUpdateWithoutSenderInput = {
    id?: StringFieldUpdateOperationsInput | string
    content?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMessageTypeFieldUpdateOperationsInput | $Enums.MessageType
    voiceUrl?: NullableStringFieldUpdateOperationsInput | string | null
    voiceDuration?: NullableIntFieldUpdateOperationsInput | number | null
    fileUrl?: NullableStringFieldUpdateOperationsInput | string | null
    fileName?: NullableStringFieldUpdateOperationsInput | string | null
    fileSize?: NullableIntFieldUpdateOperationsInput | number | null
    fileType?: NullableStringFieldUpdateOperationsInput | string | null
    isRead?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    receiverOrganization?: OrganizationUpdateOneRequiredWithoutReceivedMessagesNestedInput
    senderOrganization?: OrganizationUpdateOneRequiredWithoutSentMessagesNestedInput
  }

  export type MessageUncheckedUpdateWithoutSenderInput = {
    id?: StringFieldUpdateOperationsInput | string
    content?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMessageTypeFieldUpdateOperationsInput | $Enums.MessageType
    voiceUrl?: NullableStringFieldUpdateOperationsInput | string | null
    voiceDuration?: NullableIntFieldUpdateOperationsInput | number | null
    fileUrl?: NullableStringFieldUpdateOperationsInput | string | null
    fileName?: NullableStringFieldUpdateOperationsInput | string | null
    fileSize?: NullableIntFieldUpdateOperationsInput | number | null
    fileType?: NullableStringFieldUpdateOperationsInput | string | null
    isRead?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    senderOrganizationId?: StringFieldUpdateOperationsInput | string
    receiverOrganizationId?: StringFieldUpdateOperationsInput | string
  }

  export type MessageUncheckedUpdateManyWithoutSenderInput = {
    id?: StringFieldUpdateOperationsInput | string
    content?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMessageTypeFieldUpdateOperationsInput | $Enums.MessageType
    voiceUrl?: NullableStringFieldUpdateOperationsInput | string | null
    voiceDuration?: NullableIntFieldUpdateOperationsInput | number | null
    fileUrl?: NullableStringFieldUpdateOperationsInput | string | null
    fileName?: NullableStringFieldUpdateOperationsInput | string | null
    fileSize?: NullableIntFieldUpdateOperationsInput | number | null
    fileType?: NullableStringFieldUpdateOperationsInput | string | null
    isRead?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    senderOrganizationId?: StringFieldUpdateOperationsInput | string
    receiverOrganizationId?: StringFieldUpdateOperationsInput | string
  }

  export type SmsCodeUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    phone?: StringFieldUpdateOperationsInput | string
    expiresAt?: DateTimeFieldUpdateOperationsInput | Date | string
    isUsed?: BoolFieldUpdateOperationsInput | boolean
    attempts?: IntFieldUpdateOperationsInput | number
    maxAttempts?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SmsCodeUncheckedUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    phone?: StringFieldUpdateOperationsInput | string
    expiresAt?: DateTimeFieldUpdateOperationsInput | Date | string
    isUsed?: BoolFieldUpdateOperationsInput | boolean
    attempts?: IntFieldUpdateOperationsInput | number
    maxAttempts?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SmsCodeUncheckedUpdateManyWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    phone?: StringFieldUpdateOperationsInput | string
    expiresAt?: DateTimeFieldUpdateOperationsInput | Date | string
    isUsed?: BoolFieldUpdateOperationsInput | boolean
    attempts?: IntFieldUpdateOperationsInput | number
    maxAttempts?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ApiKeyCreateManyOrganizationInput = {
    id?: string
    marketplace: $Enums.MarketplaceType
    apiKey: string
    isActive?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    validationData?: NullableJsonNullValueInput | InputJsonValue
  }

  export type CounterpartyCreateManyCounterpartyInput = {
    id?: string
    createdAt?: Date | string
    organizationId: string
  }

  export type CounterpartyCreateManyOrganizationInput = {
    id?: string
    createdAt?: Date | string
    counterpartyId: string
  }

  export type CounterpartyRequestCreateManyReceiverInput = {
    id?: string
    status?: $Enums.CounterpartyRequestStatus
    createdAt?: Date | string
    updatedAt?: Date | string
    senderId: string
    message?: string | null
  }

  export type CounterpartyRequestCreateManySenderInput = {
    id?: string
    status?: $Enums.CounterpartyRequestStatus
    createdAt?: Date | string
    updatedAt?: Date | string
    receiverId: string
    message?: string | null
  }

  export type EmployeeCreateManyOrganizationInput = {
    id?: string
    firstName: string
    lastName: string
    middleName?: string | null
    birthDate?: Date | string | null
    avatar?: string | null
    passportPhoto?: string | null
    passportSeries?: string | null
    passportNumber?: string | null
    passportIssued?: string | null
    passportDate?: Date | string | null
    address?: string | null
    position: string
    department?: string | null
    hireDate: Date | string
    salary?: number | null
    status?: $Enums.EmployeeStatus
    phone: string
    email?: string | null
    telegram?: string | null
    whatsapp?: string | null
    emergencyContact?: string | null
    emergencyPhone?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type FavoritesCreateManyOrganizationInput = {
    id?: string
    productId: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type MessageCreateManyReceiverOrganizationInput = {
    id?: string
    content?: string | null
    type?: $Enums.MessageType
    voiceUrl?: string | null
    voiceDuration?: number | null
    fileUrl?: string | null
    fileName?: string | null
    fileSize?: number | null
    fileType?: string | null
    isRead?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    senderId: string
    senderOrganizationId: string
  }

  export type MessageCreateManySenderOrganizationInput = {
    id?: string
    content?: string | null
    type?: $Enums.MessageType
    voiceUrl?: string | null
    voiceDuration?: number | null
    fileUrl?: string | null
    fileName?: string | null
    fileSize?: number | null
    fileType?: string | null
    isRead?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    senderId: string
    receiverOrganizationId: string
  }

  export type ProductCreateManyOrganizationInput = {
    id?: string
    name: string
    article: string
    description?: string | null
    price: Decimal | DecimalJsLike | number | string
    quantity?: number
    categoryId?: string | null
    brand?: string | null
    color?: string | null
    size?: string | null
    weight?: Decimal | DecimalJsLike | number | string | null
    dimensions?: string | null
    material?: string | null
    images?: JsonNullValueInput | InputJsonValue
    mainImage?: string | null
    isActive?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type ServiceCreateManyOrganizationInput = {
    id?: string
    name: string
    description?: string | null
    price: Decimal | DecimalJsLike | number | string
    imageUrl?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type SupplyCreateManyOrganizationInput = {
    id?: string
    name: string
    description?: string | null
    price: Decimal | DecimalJsLike | number | string
    quantity?: number
    unit?: string
    category?: string
    status?: string
    date?: Date | string
    supplier?: string
    minStock?: number
    currentStock?: number
    imageUrl?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type UserCreateManyOrganizationInput = {
    id?: string
    phone: string
    avatar?: string | null
    managerName?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type LogisticsCreateManyOrganizationInput = {
    id?: string
    fromLocation: string
    toLocation: string
    priceUnder1m3: number
    priceOver1m3: number
    description?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type SupplyOrderCreateManyOrganizationInput = {
    id?: string
    partnerId: string
    deliveryDate: Date | string
    status?: $Enums.SupplyOrderStatus
    totalAmount: Decimal | DecimalJsLike | number | string
    totalItems: number
    fulfillmentCenterId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type SupplyOrderCreateManyPartnerInput = {
    id?: string
    deliveryDate: Date | string
    status?: $Enums.SupplyOrderStatus
    totalAmount: Decimal | DecimalJsLike | number | string
    totalItems: number
    fulfillmentCenterId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    organizationId: string
  }

  export type SupplyOrderCreateManyFulfillmentCenterInput = {
    id?: string
    partnerId: string
    deliveryDate: Date | string
    status?: $Enums.SupplyOrderStatus
    totalAmount: Decimal | DecimalJsLike | number | string
    totalItems: number
    createdAt?: Date | string
    updatedAt?: Date | string
    organizationId: string
  }

  export type WildberriesSupplyCreateManyOrganizationInput = {
    id?: string
    deliveryDate?: Date | string | null
    status?: $Enums.WildberriesSupplyStatus
    totalAmount: Decimal | DecimalJsLike | number | string
    totalItems: number
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type SupplySupplierCreateManyOrganizationInput = {
    id?: string
    name: string
    contactName: string
    phone: string
    market?: string | null
    address?: string | null
    place?: string | null
    telegram?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type ApiKeyUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    marketplace?: EnumMarketplaceTypeFieldUpdateOperationsInput | $Enums.MarketplaceType
    apiKey?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    validationData?: NullableJsonNullValueInput | InputJsonValue
  }

  export type ApiKeyUncheckedUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    marketplace?: EnumMarketplaceTypeFieldUpdateOperationsInput | $Enums.MarketplaceType
    apiKey?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    validationData?: NullableJsonNullValueInput | InputJsonValue
  }

  export type ApiKeyUncheckedUpdateManyWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    marketplace?: EnumMarketplaceTypeFieldUpdateOperationsInput | $Enums.MarketplaceType
    apiKey?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    validationData?: NullableJsonNullValueInput | InputJsonValue
  }

  export type CounterpartyUpdateWithoutCounterpartyInput = {
    id?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organization?: OrganizationUpdateOneRequiredWithoutOrganizationCounterpartiesNestedInput
  }

  export type CounterpartyUncheckedUpdateWithoutCounterpartyInput = {
    id?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organizationId?: StringFieldUpdateOperationsInput | string
  }

  export type CounterpartyUncheckedUpdateManyWithoutCounterpartyInput = {
    id?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organizationId?: StringFieldUpdateOperationsInput | string
  }

  export type CounterpartyUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    counterparty?: OrganizationUpdateOneRequiredWithoutCounterpartyOfNestedInput
  }

  export type CounterpartyUncheckedUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    counterpartyId?: StringFieldUpdateOperationsInput | string
  }

  export type CounterpartyUncheckedUpdateManyWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    counterpartyId?: StringFieldUpdateOperationsInput | string
  }

  export type CounterpartyRequestUpdateWithoutReceiverInput = {
    id?: StringFieldUpdateOperationsInput | string
    status?: EnumCounterpartyRequestStatusFieldUpdateOperationsInput | $Enums.CounterpartyRequestStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    message?: NullableStringFieldUpdateOperationsInput | string | null
    sender?: OrganizationUpdateOneRequiredWithoutSentRequestsNestedInput
  }

  export type CounterpartyRequestUncheckedUpdateWithoutReceiverInput = {
    id?: StringFieldUpdateOperationsInput | string
    status?: EnumCounterpartyRequestStatusFieldUpdateOperationsInput | $Enums.CounterpartyRequestStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    senderId?: StringFieldUpdateOperationsInput | string
    message?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type CounterpartyRequestUncheckedUpdateManyWithoutReceiverInput = {
    id?: StringFieldUpdateOperationsInput | string
    status?: EnumCounterpartyRequestStatusFieldUpdateOperationsInput | $Enums.CounterpartyRequestStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    senderId?: StringFieldUpdateOperationsInput | string
    message?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type CounterpartyRequestUpdateWithoutSenderInput = {
    id?: StringFieldUpdateOperationsInput | string
    status?: EnumCounterpartyRequestStatusFieldUpdateOperationsInput | $Enums.CounterpartyRequestStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    message?: NullableStringFieldUpdateOperationsInput | string | null
    receiver?: OrganizationUpdateOneRequiredWithoutReceivedRequestsNestedInput
  }

  export type CounterpartyRequestUncheckedUpdateWithoutSenderInput = {
    id?: StringFieldUpdateOperationsInput | string
    status?: EnumCounterpartyRequestStatusFieldUpdateOperationsInput | $Enums.CounterpartyRequestStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    receiverId?: StringFieldUpdateOperationsInput | string
    message?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type CounterpartyRequestUncheckedUpdateManyWithoutSenderInput = {
    id?: StringFieldUpdateOperationsInput | string
    status?: EnumCounterpartyRequestStatusFieldUpdateOperationsInput | $Enums.CounterpartyRequestStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    receiverId?: StringFieldUpdateOperationsInput | string
    message?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type EmployeeUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    firstName?: StringFieldUpdateOperationsInput | string
    lastName?: StringFieldUpdateOperationsInput | string
    middleName?: NullableStringFieldUpdateOperationsInput | string | null
    birthDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    passportPhoto?: NullableStringFieldUpdateOperationsInput | string | null
    passportSeries?: NullableStringFieldUpdateOperationsInput | string | null
    passportNumber?: NullableStringFieldUpdateOperationsInput | string | null
    passportIssued?: NullableStringFieldUpdateOperationsInput | string | null
    passportDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    position?: StringFieldUpdateOperationsInput | string
    department?: NullableStringFieldUpdateOperationsInput | string | null
    hireDate?: DateTimeFieldUpdateOperationsInput | Date | string
    salary?: NullableFloatFieldUpdateOperationsInput | number | null
    status?: EnumEmployeeStatusFieldUpdateOperationsInput | $Enums.EmployeeStatus
    phone?: StringFieldUpdateOperationsInput | string
    email?: NullableStringFieldUpdateOperationsInput | string | null
    telegram?: NullableStringFieldUpdateOperationsInput | string | null
    whatsapp?: NullableStringFieldUpdateOperationsInput | string | null
    emergencyContact?: NullableStringFieldUpdateOperationsInput | string | null
    emergencyPhone?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    scheduleRecords?: EmployeeScheduleUpdateManyWithoutEmployeeNestedInput
  }

  export type EmployeeUncheckedUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    firstName?: StringFieldUpdateOperationsInput | string
    lastName?: StringFieldUpdateOperationsInput | string
    middleName?: NullableStringFieldUpdateOperationsInput | string | null
    birthDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    passportPhoto?: NullableStringFieldUpdateOperationsInput | string | null
    passportSeries?: NullableStringFieldUpdateOperationsInput | string | null
    passportNumber?: NullableStringFieldUpdateOperationsInput | string | null
    passportIssued?: NullableStringFieldUpdateOperationsInput | string | null
    passportDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    position?: StringFieldUpdateOperationsInput | string
    department?: NullableStringFieldUpdateOperationsInput | string | null
    hireDate?: DateTimeFieldUpdateOperationsInput | Date | string
    salary?: NullableFloatFieldUpdateOperationsInput | number | null
    status?: EnumEmployeeStatusFieldUpdateOperationsInput | $Enums.EmployeeStatus
    phone?: StringFieldUpdateOperationsInput | string
    email?: NullableStringFieldUpdateOperationsInput | string | null
    telegram?: NullableStringFieldUpdateOperationsInput | string | null
    whatsapp?: NullableStringFieldUpdateOperationsInput | string | null
    emergencyContact?: NullableStringFieldUpdateOperationsInput | string | null
    emergencyPhone?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    scheduleRecords?: EmployeeScheduleUncheckedUpdateManyWithoutEmployeeNestedInput
  }

  export type EmployeeUncheckedUpdateManyWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    firstName?: StringFieldUpdateOperationsInput | string
    lastName?: StringFieldUpdateOperationsInput | string
    middleName?: NullableStringFieldUpdateOperationsInput | string | null
    birthDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    passportPhoto?: NullableStringFieldUpdateOperationsInput | string | null
    passportSeries?: NullableStringFieldUpdateOperationsInput | string | null
    passportNumber?: NullableStringFieldUpdateOperationsInput | string | null
    passportIssued?: NullableStringFieldUpdateOperationsInput | string | null
    passportDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    position?: StringFieldUpdateOperationsInput | string
    department?: NullableStringFieldUpdateOperationsInput | string | null
    hireDate?: DateTimeFieldUpdateOperationsInput | Date | string
    salary?: NullableFloatFieldUpdateOperationsInput | number | null
    status?: EnumEmployeeStatusFieldUpdateOperationsInput | $Enums.EmployeeStatus
    phone?: StringFieldUpdateOperationsInput | string
    email?: NullableStringFieldUpdateOperationsInput | string | null
    telegram?: NullableStringFieldUpdateOperationsInput | string | null
    whatsapp?: NullableStringFieldUpdateOperationsInput | string | null
    emergencyContact?: NullableStringFieldUpdateOperationsInput | string | null
    emergencyPhone?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type FavoritesUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    product?: ProductUpdateOneRequiredWithoutFavoritesNestedInput
  }

  export type FavoritesUncheckedUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    productId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type FavoritesUncheckedUpdateManyWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    productId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MessageUpdateWithoutReceiverOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    content?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMessageTypeFieldUpdateOperationsInput | $Enums.MessageType
    voiceUrl?: NullableStringFieldUpdateOperationsInput | string | null
    voiceDuration?: NullableIntFieldUpdateOperationsInput | number | null
    fileUrl?: NullableStringFieldUpdateOperationsInput | string | null
    fileName?: NullableStringFieldUpdateOperationsInput | string | null
    fileSize?: NullableIntFieldUpdateOperationsInput | number | null
    fileType?: NullableStringFieldUpdateOperationsInput | string | null
    isRead?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    sender?: UserUpdateOneRequiredWithoutSentMessagesNestedInput
    senderOrganization?: OrganizationUpdateOneRequiredWithoutSentMessagesNestedInput
  }

  export type MessageUncheckedUpdateWithoutReceiverOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    content?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMessageTypeFieldUpdateOperationsInput | $Enums.MessageType
    voiceUrl?: NullableStringFieldUpdateOperationsInput | string | null
    voiceDuration?: NullableIntFieldUpdateOperationsInput | number | null
    fileUrl?: NullableStringFieldUpdateOperationsInput | string | null
    fileName?: NullableStringFieldUpdateOperationsInput | string | null
    fileSize?: NullableIntFieldUpdateOperationsInput | number | null
    fileType?: NullableStringFieldUpdateOperationsInput | string | null
    isRead?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    senderId?: StringFieldUpdateOperationsInput | string
    senderOrganizationId?: StringFieldUpdateOperationsInput | string
  }

  export type MessageUncheckedUpdateManyWithoutReceiverOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    content?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMessageTypeFieldUpdateOperationsInput | $Enums.MessageType
    voiceUrl?: NullableStringFieldUpdateOperationsInput | string | null
    voiceDuration?: NullableIntFieldUpdateOperationsInput | number | null
    fileUrl?: NullableStringFieldUpdateOperationsInput | string | null
    fileName?: NullableStringFieldUpdateOperationsInput | string | null
    fileSize?: NullableIntFieldUpdateOperationsInput | number | null
    fileType?: NullableStringFieldUpdateOperationsInput | string | null
    isRead?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    senderId?: StringFieldUpdateOperationsInput | string
    senderOrganizationId?: StringFieldUpdateOperationsInput | string
  }

  export type MessageUpdateWithoutSenderOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    content?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMessageTypeFieldUpdateOperationsInput | $Enums.MessageType
    voiceUrl?: NullableStringFieldUpdateOperationsInput | string | null
    voiceDuration?: NullableIntFieldUpdateOperationsInput | number | null
    fileUrl?: NullableStringFieldUpdateOperationsInput | string | null
    fileName?: NullableStringFieldUpdateOperationsInput | string | null
    fileSize?: NullableIntFieldUpdateOperationsInput | number | null
    fileType?: NullableStringFieldUpdateOperationsInput | string | null
    isRead?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    receiverOrganization?: OrganizationUpdateOneRequiredWithoutReceivedMessagesNestedInput
    sender?: UserUpdateOneRequiredWithoutSentMessagesNestedInput
  }

  export type MessageUncheckedUpdateWithoutSenderOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    content?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMessageTypeFieldUpdateOperationsInput | $Enums.MessageType
    voiceUrl?: NullableStringFieldUpdateOperationsInput | string | null
    voiceDuration?: NullableIntFieldUpdateOperationsInput | number | null
    fileUrl?: NullableStringFieldUpdateOperationsInput | string | null
    fileName?: NullableStringFieldUpdateOperationsInput | string | null
    fileSize?: NullableIntFieldUpdateOperationsInput | number | null
    fileType?: NullableStringFieldUpdateOperationsInput | string | null
    isRead?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    senderId?: StringFieldUpdateOperationsInput | string
    receiverOrganizationId?: StringFieldUpdateOperationsInput | string
  }

  export type MessageUncheckedUpdateManyWithoutSenderOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    content?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMessageTypeFieldUpdateOperationsInput | $Enums.MessageType
    voiceUrl?: NullableStringFieldUpdateOperationsInput | string | null
    voiceDuration?: NullableIntFieldUpdateOperationsInput | number | null
    fileUrl?: NullableStringFieldUpdateOperationsInput | string | null
    fileName?: NullableStringFieldUpdateOperationsInput | string | null
    fileSize?: NullableIntFieldUpdateOperationsInput | number | null
    fileType?: NullableStringFieldUpdateOperationsInput | string | null
    isRead?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    senderId?: StringFieldUpdateOperationsInput | string
    receiverOrganizationId?: StringFieldUpdateOperationsInput | string
  }

  export type ProductUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    article?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    price?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    quantity?: IntFieldUpdateOperationsInput | number
    brand?: NullableStringFieldUpdateOperationsInput | string | null
    color?: NullableStringFieldUpdateOperationsInput | string | null
    size?: NullableStringFieldUpdateOperationsInput | string | null
    weight?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    dimensions?: NullableStringFieldUpdateOperationsInput | string | null
    material?: NullableStringFieldUpdateOperationsInput | string | null
    images?: JsonNullValueInput | InputJsonValue
    mainImage?: NullableStringFieldUpdateOperationsInput | string | null
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    cartItems?: CartItemUpdateManyWithoutProductNestedInput
    favorites?: FavoritesUpdateManyWithoutProductNestedInput
    supplyOrderItems?: SupplyOrderItemUpdateManyWithoutProductNestedInput
    category?: CategoryUpdateOneWithoutProductsNestedInput
  }

  export type ProductUncheckedUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    article?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    price?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    quantity?: IntFieldUpdateOperationsInput | number
    categoryId?: NullableStringFieldUpdateOperationsInput | string | null
    brand?: NullableStringFieldUpdateOperationsInput | string | null
    color?: NullableStringFieldUpdateOperationsInput | string | null
    size?: NullableStringFieldUpdateOperationsInput | string | null
    weight?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    dimensions?: NullableStringFieldUpdateOperationsInput | string | null
    material?: NullableStringFieldUpdateOperationsInput | string | null
    images?: JsonNullValueInput | InputJsonValue
    mainImage?: NullableStringFieldUpdateOperationsInput | string | null
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    cartItems?: CartItemUncheckedUpdateManyWithoutProductNestedInput
    favorites?: FavoritesUncheckedUpdateManyWithoutProductNestedInput
    supplyOrderItems?: SupplyOrderItemUncheckedUpdateManyWithoutProductNestedInput
  }

  export type ProductUncheckedUpdateManyWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    article?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    price?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    quantity?: IntFieldUpdateOperationsInput | number
    categoryId?: NullableStringFieldUpdateOperationsInput | string | null
    brand?: NullableStringFieldUpdateOperationsInput | string | null
    color?: NullableStringFieldUpdateOperationsInput | string | null
    size?: NullableStringFieldUpdateOperationsInput | string | null
    weight?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    dimensions?: NullableStringFieldUpdateOperationsInput | string | null
    material?: NullableStringFieldUpdateOperationsInput | string | null
    images?: JsonNullValueInput | InputJsonValue
    mainImage?: NullableStringFieldUpdateOperationsInput | string | null
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ServiceUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    price?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    imageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ServiceUncheckedUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    price?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    imageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ServiceUncheckedUpdateManyWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    price?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    imageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SupplyUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    price?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    quantity?: IntFieldUpdateOperationsInput | number
    unit?: StringFieldUpdateOperationsInput | string
    category?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    date?: DateTimeFieldUpdateOperationsInput | Date | string
    supplier?: StringFieldUpdateOperationsInput | string
    minStock?: IntFieldUpdateOperationsInput | number
    currentStock?: IntFieldUpdateOperationsInput | number
    imageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SupplyUncheckedUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    price?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    quantity?: IntFieldUpdateOperationsInput | number
    unit?: StringFieldUpdateOperationsInput | string
    category?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    date?: DateTimeFieldUpdateOperationsInput | Date | string
    supplier?: StringFieldUpdateOperationsInput | string
    minStock?: IntFieldUpdateOperationsInput | number
    currentStock?: IntFieldUpdateOperationsInput | number
    imageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SupplyUncheckedUpdateManyWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    price?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    quantity?: IntFieldUpdateOperationsInput | number
    unit?: StringFieldUpdateOperationsInput | string
    category?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    date?: DateTimeFieldUpdateOperationsInput | Date | string
    supplier?: StringFieldUpdateOperationsInput | string
    minStock?: IntFieldUpdateOperationsInput | number
    currentStock?: IntFieldUpdateOperationsInput | number
    imageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type UserUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    phone?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    managerName?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    sentMessages?: MessageUpdateManyWithoutSenderNestedInput
    smsCodes?: SmsCodeUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    phone?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    managerName?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    sentMessages?: MessageUncheckedUpdateManyWithoutSenderNestedInput
    smsCodes?: SmsCodeUncheckedUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateManyWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    phone?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    managerName?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type LogisticsUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    fromLocation?: StringFieldUpdateOperationsInput | string
    toLocation?: StringFieldUpdateOperationsInput | string
    priceUnder1m3?: FloatFieldUpdateOperationsInput | number
    priceOver1m3?: FloatFieldUpdateOperationsInput | number
    description?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type LogisticsUncheckedUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    fromLocation?: StringFieldUpdateOperationsInput | string
    toLocation?: StringFieldUpdateOperationsInput | string
    priceUnder1m3?: FloatFieldUpdateOperationsInput | number
    priceOver1m3?: FloatFieldUpdateOperationsInput | number
    description?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type LogisticsUncheckedUpdateManyWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    fromLocation?: StringFieldUpdateOperationsInput | string
    toLocation?: StringFieldUpdateOperationsInput | string
    priceUnder1m3?: FloatFieldUpdateOperationsInput | number
    priceOver1m3?: FloatFieldUpdateOperationsInput | number
    description?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SupplyOrderUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    deliveryDate?: DateTimeFieldUpdateOperationsInput | Date | string
    status?: EnumSupplyOrderStatusFieldUpdateOperationsInput | $Enums.SupplyOrderStatus
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    totalItems?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    items?: SupplyOrderItemUpdateManyWithoutSupplyOrderNestedInput
    partner?: OrganizationUpdateOneRequiredWithoutPartnerSupplyOrdersNestedInput
    fulfillmentCenter?: OrganizationUpdateOneWithoutFulfillmentSupplyOrdersNestedInput
  }

  export type SupplyOrderUncheckedUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    partnerId?: StringFieldUpdateOperationsInput | string
    deliveryDate?: DateTimeFieldUpdateOperationsInput | Date | string
    status?: EnumSupplyOrderStatusFieldUpdateOperationsInput | $Enums.SupplyOrderStatus
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    totalItems?: IntFieldUpdateOperationsInput | number
    fulfillmentCenterId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    items?: SupplyOrderItemUncheckedUpdateManyWithoutSupplyOrderNestedInput
  }

  export type SupplyOrderUncheckedUpdateManyWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    partnerId?: StringFieldUpdateOperationsInput | string
    deliveryDate?: DateTimeFieldUpdateOperationsInput | Date | string
    status?: EnumSupplyOrderStatusFieldUpdateOperationsInput | $Enums.SupplyOrderStatus
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    totalItems?: IntFieldUpdateOperationsInput | number
    fulfillmentCenterId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SupplyOrderUpdateWithoutPartnerInput = {
    id?: StringFieldUpdateOperationsInput | string
    deliveryDate?: DateTimeFieldUpdateOperationsInput | Date | string
    status?: EnumSupplyOrderStatusFieldUpdateOperationsInput | $Enums.SupplyOrderStatus
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    totalItems?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    items?: SupplyOrderItemUpdateManyWithoutSupplyOrderNestedInput
    organization?: OrganizationUpdateOneRequiredWithoutSupplyOrdersNestedInput
    fulfillmentCenter?: OrganizationUpdateOneWithoutFulfillmentSupplyOrdersNestedInput
  }

  export type SupplyOrderUncheckedUpdateWithoutPartnerInput = {
    id?: StringFieldUpdateOperationsInput | string
    deliveryDate?: DateTimeFieldUpdateOperationsInput | Date | string
    status?: EnumSupplyOrderStatusFieldUpdateOperationsInput | $Enums.SupplyOrderStatus
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    totalItems?: IntFieldUpdateOperationsInput | number
    fulfillmentCenterId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organizationId?: StringFieldUpdateOperationsInput | string
    items?: SupplyOrderItemUncheckedUpdateManyWithoutSupplyOrderNestedInput
  }

  export type SupplyOrderUncheckedUpdateManyWithoutPartnerInput = {
    id?: StringFieldUpdateOperationsInput | string
    deliveryDate?: DateTimeFieldUpdateOperationsInput | Date | string
    status?: EnumSupplyOrderStatusFieldUpdateOperationsInput | $Enums.SupplyOrderStatus
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    totalItems?: IntFieldUpdateOperationsInput | number
    fulfillmentCenterId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organizationId?: StringFieldUpdateOperationsInput | string
  }

  export type SupplyOrderUpdateWithoutFulfillmentCenterInput = {
    id?: StringFieldUpdateOperationsInput | string
    deliveryDate?: DateTimeFieldUpdateOperationsInput | Date | string
    status?: EnumSupplyOrderStatusFieldUpdateOperationsInput | $Enums.SupplyOrderStatus
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    totalItems?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    items?: SupplyOrderItemUpdateManyWithoutSupplyOrderNestedInput
    organization?: OrganizationUpdateOneRequiredWithoutSupplyOrdersNestedInput
    partner?: OrganizationUpdateOneRequiredWithoutPartnerSupplyOrdersNestedInput
  }

  export type SupplyOrderUncheckedUpdateWithoutFulfillmentCenterInput = {
    id?: StringFieldUpdateOperationsInput | string
    partnerId?: StringFieldUpdateOperationsInput | string
    deliveryDate?: DateTimeFieldUpdateOperationsInput | Date | string
    status?: EnumSupplyOrderStatusFieldUpdateOperationsInput | $Enums.SupplyOrderStatus
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    totalItems?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organizationId?: StringFieldUpdateOperationsInput | string
    items?: SupplyOrderItemUncheckedUpdateManyWithoutSupplyOrderNestedInput
  }

  export type SupplyOrderUncheckedUpdateManyWithoutFulfillmentCenterInput = {
    id?: StringFieldUpdateOperationsInput | string
    partnerId?: StringFieldUpdateOperationsInput | string
    deliveryDate?: DateTimeFieldUpdateOperationsInput | Date | string
    status?: EnumSupplyOrderStatusFieldUpdateOperationsInput | $Enums.SupplyOrderStatus
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    totalItems?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organizationId?: StringFieldUpdateOperationsInput | string
  }

  export type WildberriesSupplyUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    deliveryDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    status?: EnumWildberriesSupplyStatusFieldUpdateOperationsInput | $Enums.WildberriesSupplyStatus
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    totalItems?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    cards?: WildberriesSupplyCardUpdateManyWithoutSupplyNestedInput
  }

  export type WildberriesSupplyUncheckedUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    deliveryDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    status?: EnumWildberriesSupplyStatusFieldUpdateOperationsInput | $Enums.WildberriesSupplyStatus
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    totalItems?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    cards?: WildberriesSupplyCardUncheckedUpdateManyWithoutSupplyNestedInput
  }

  export type WildberriesSupplyUncheckedUpdateManyWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    deliveryDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    status?: EnumWildberriesSupplyStatusFieldUpdateOperationsInput | $Enums.WildberriesSupplyStatus
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    totalItems?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SupplySupplierUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    contactName?: StringFieldUpdateOperationsInput | string
    phone?: StringFieldUpdateOperationsInput | string
    market?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    place?: NullableStringFieldUpdateOperationsInput | string | null
    telegram?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SupplySupplierUncheckedUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    contactName?: StringFieldUpdateOperationsInput | string
    phone?: StringFieldUpdateOperationsInput | string
    market?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    place?: NullableStringFieldUpdateOperationsInput | string | null
    telegram?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SupplySupplierUncheckedUpdateManyWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    contactName?: StringFieldUpdateOperationsInput | string
    phone?: StringFieldUpdateOperationsInput | string
    market?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    place?: NullableStringFieldUpdateOperationsInput | string | null
    telegram?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ProductCreateManyCategoryInput = {
    id?: string
    name: string
    article: string
    description?: string | null
    price: Decimal | DecimalJsLike | number | string
    quantity?: number
    brand?: string | null
    color?: string | null
    size?: string | null
    weight?: Decimal | DecimalJsLike | number | string | null
    dimensions?: string | null
    material?: string | null
    images?: JsonNullValueInput | InputJsonValue
    mainImage?: string | null
    isActive?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    organizationId: string
  }

  export type ProductUpdateWithoutCategoryInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    article?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    price?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    quantity?: IntFieldUpdateOperationsInput | number
    brand?: NullableStringFieldUpdateOperationsInput | string | null
    color?: NullableStringFieldUpdateOperationsInput | string | null
    size?: NullableStringFieldUpdateOperationsInput | string | null
    weight?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    dimensions?: NullableStringFieldUpdateOperationsInput | string | null
    material?: NullableStringFieldUpdateOperationsInput | string | null
    images?: JsonNullValueInput | InputJsonValue
    mainImage?: NullableStringFieldUpdateOperationsInput | string | null
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    cartItems?: CartItemUpdateManyWithoutProductNestedInput
    favorites?: FavoritesUpdateManyWithoutProductNestedInput
    supplyOrderItems?: SupplyOrderItemUpdateManyWithoutProductNestedInput
    organization?: OrganizationUpdateOneRequiredWithoutProductsNestedInput
  }

  export type ProductUncheckedUpdateWithoutCategoryInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    article?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    price?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    quantity?: IntFieldUpdateOperationsInput | number
    brand?: NullableStringFieldUpdateOperationsInput | string | null
    color?: NullableStringFieldUpdateOperationsInput | string | null
    size?: NullableStringFieldUpdateOperationsInput | string | null
    weight?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    dimensions?: NullableStringFieldUpdateOperationsInput | string | null
    material?: NullableStringFieldUpdateOperationsInput | string | null
    images?: JsonNullValueInput | InputJsonValue
    mainImage?: NullableStringFieldUpdateOperationsInput | string | null
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organizationId?: StringFieldUpdateOperationsInput | string
    cartItems?: CartItemUncheckedUpdateManyWithoutProductNestedInput
    favorites?: FavoritesUncheckedUpdateManyWithoutProductNestedInput
    supplyOrderItems?: SupplyOrderItemUncheckedUpdateManyWithoutProductNestedInput
  }

  export type ProductUncheckedUpdateManyWithoutCategoryInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    article?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    price?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    quantity?: IntFieldUpdateOperationsInput | number
    brand?: NullableStringFieldUpdateOperationsInput | string | null
    color?: NullableStringFieldUpdateOperationsInput | string | null
    size?: NullableStringFieldUpdateOperationsInput | string | null
    weight?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    dimensions?: NullableStringFieldUpdateOperationsInput | string | null
    material?: NullableStringFieldUpdateOperationsInput | string | null
    images?: JsonNullValueInput | InputJsonValue
    mainImage?: NullableStringFieldUpdateOperationsInput | string | null
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organizationId?: StringFieldUpdateOperationsInput | string
  }

  export type CartItemCreateManyProductInput = {
    id?: string
    cartId: string
    quantity?: number
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type FavoritesCreateManyProductInput = {
    id?: string
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type SupplyOrderItemCreateManyProductInput = {
    id?: string
    supplyOrderId: string
    quantity: number
    price: Decimal | DecimalJsLike | number | string
    totalPrice: Decimal | DecimalJsLike | number | string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type CartItemUpdateWithoutProductInput = {
    id?: StringFieldUpdateOperationsInput | string
    quantity?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    cart?: CartUpdateOneRequiredWithoutItemsNestedInput
  }

  export type CartItemUncheckedUpdateWithoutProductInput = {
    id?: StringFieldUpdateOperationsInput | string
    cartId?: StringFieldUpdateOperationsInput | string
    quantity?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type CartItemUncheckedUpdateManyWithoutProductInput = {
    id?: StringFieldUpdateOperationsInput | string
    cartId?: StringFieldUpdateOperationsInput | string
    quantity?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type FavoritesUpdateWithoutProductInput = {
    id?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organization?: OrganizationUpdateOneRequiredWithoutFavoritesNestedInput
  }

  export type FavoritesUncheckedUpdateWithoutProductInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type FavoritesUncheckedUpdateManyWithoutProductInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SupplyOrderItemUpdateWithoutProductInput = {
    id?: StringFieldUpdateOperationsInput | string
    quantity?: IntFieldUpdateOperationsInput | number
    price?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    totalPrice?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    supplyOrder?: SupplyOrderUpdateOneRequiredWithoutItemsNestedInput
  }

  export type SupplyOrderItemUncheckedUpdateWithoutProductInput = {
    id?: StringFieldUpdateOperationsInput | string
    supplyOrderId?: StringFieldUpdateOperationsInput | string
    quantity?: IntFieldUpdateOperationsInput | number
    price?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    totalPrice?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SupplyOrderItemUncheckedUpdateManyWithoutProductInput = {
    id?: StringFieldUpdateOperationsInput | string
    supplyOrderId?: StringFieldUpdateOperationsInput | string
    quantity?: IntFieldUpdateOperationsInput | number
    price?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    totalPrice?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type CartItemCreateManyCartInput = {
    id?: string
    productId: string
    quantity?: number
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type CartItemUpdateWithoutCartInput = {
    id?: StringFieldUpdateOperationsInput | string
    quantity?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    product?: ProductUpdateOneRequiredWithoutCartItemsNestedInput
  }

  export type CartItemUncheckedUpdateWithoutCartInput = {
    id?: StringFieldUpdateOperationsInput | string
    productId?: StringFieldUpdateOperationsInput | string
    quantity?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type CartItemUncheckedUpdateManyWithoutCartInput = {
    id?: StringFieldUpdateOperationsInput | string
    productId?: StringFieldUpdateOperationsInput | string
    quantity?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type EmployeeScheduleCreateManyEmployeeInput = {
    id?: string
    date: Date | string
    status: $Enums.ScheduleStatus
    hoursWorked?: number | null
    notes?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type EmployeeScheduleUpdateWithoutEmployeeInput = {
    id?: StringFieldUpdateOperationsInput | string
    date?: DateTimeFieldUpdateOperationsInput | Date | string
    status?: EnumScheduleStatusFieldUpdateOperationsInput | $Enums.ScheduleStatus
    hoursWorked?: NullableFloatFieldUpdateOperationsInput | number | null
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type EmployeeScheduleUncheckedUpdateWithoutEmployeeInput = {
    id?: StringFieldUpdateOperationsInput | string
    date?: DateTimeFieldUpdateOperationsInput | Date | string
    status?: EnumScheduleStatusFieldUpdateOperationsInput | $Enums.ScheduleStatus
    hoursWorked?: NullableFloatFieldUpdateOperationsInput | number | null
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type EmployeeScheduleUncheckedUpdateManyWithoutEmployeeInput = {
    id?: StringFieldUpdateOperationsInput | string
    date?: DateTimeFieldUpdateOperationsInput | Date | string
    status?: EnumScheduleStatusFieldUpdateOperationsInput | $Enums.ScheduleStatus
    hoursWorked?: NullableFloatFieldUpdateOperationsInput | number | null
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type WildberriesSupplyCardCreateManySupplyInput = {
    id?: string
    nmId: string
    vendorCode: string
    title: string
    brand?: string | null
    price: Decimal | DecimalJsLike | number | string
    discountedPrice?: Decimal | DecimalJsLike | number | string | null
    quantity: number
    selectedQuantity: number
    selectedMarket?: string | null
    selectedPlace?: string | null
    sellerName?: string | null
    sellerPhone?: string | null
    deliveryDate?: Date | string | null
    mediaFiles?: JsonNullValueInput | InputJsonValue
    selectedServices?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type WildberriesSupplyCardUpdateWithoutSupplyInput = {
    id?: StringFieldUpdateOperationsInput | string
    nmId?: StringFieldUpdateOperationsInput | string
    vendorCode?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    brand?: NullableStringFieldUpdateOperationsInput | string | null
    price?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    discountedPrice?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    quantity?: IntFieldUpdateOperationsInput | number
    selectedQuantity?: IntFieldUpdateOperationsInput | number
    selectedMarket?: NullableStringFieldUpdateOperationsInput | string | null
    selectedPlace?: NullableStringFieldUpdateOperationsInput | string | null
    sellerName?: NullableStringFieldUpdateOperationsInput | string | null
    sellerPhone?: NullableStringFieldUpdateOperationsInput | string | null
    deliveryDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    mediaFiles?: JsonNullValueInput | InputJsonValue
    selectedServices?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type WildberriesSupplyCardUncheckedUpdateWithoutSupplyInput = {
    id?: StringFieldUpdateOperationsInput | string
    nmId?: StringFieldUpdateOperationsInput | string
    vendorCode?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    brand?: NullableStringFieldUpdateOperationsInput | string | null
    price?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    discountedPrice?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    quantity?: IntFieldUpdateOperationsInput | number
    selectedQuantity?: IntFieldUpdateOperationsInput | number
    selectedMarket?: NullableStringFieldUpdateOperationsInput | string | null
    selectedPlace?: NullableStringFieldUpdateOperationsInput | string | null
    sellerName?: NullableStringFieldUpdateOperationsInput | string | null
    sellerPhone?: NullableStringFieldUpdateOperationsInput | string | null
    deliveryDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    mediaFiles?: JsonNullValueInput | InputJsonValue
    selectedServices?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type WildberriesSupplyCardUncheckedUpdateManyWithoutSupplyInput = {
    id?: StringFieldUpdateOperationsInput | string
    nmId?: StringFieldUpdateOperationsInput | string
    vendorCode?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    brand?: NullableStringFieldUpdateOperationsInput | string | null
    price?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    discountedPrice?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    quantity?: IntFieldUpdateOperationsInput | number
    selectedQuantity?: IntFieldUpdateOperationsInput | number
    selectedMarket?: NullableStringFieldUpdateOperationsInput | string | null
    selectedPlace?: NullableStringFieldUpdateOperationsInput | string | null
    sellerName?: NullableStringFieldUpdateOperationsInput | string | null
    sellerPhone?: NullableStringFieldUpdateOperationsInput | string | null
    deliveryDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    mediaFiles?: JsonNullValueInput | InputJsonValue
    selectedServices?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SupplyOrderItemCreateManySupplyOrderInput = {
    id?: string
    productId: string
    quantity: number
    price: Decimal | DecimalJsLike | number | string
    totalPrice: Decimal | DecimalJsLike | number | string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type SupplyOrderItemUpdateWithoutSupplyOrderInput = {
    id?: StringFieldUpdateOperationsInput | string
    quantity?: IntFieldUpdateOperationsInput | number
    price?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    totalPrice?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    product?: ProductUpdateOneRequiredWithoutSupplyOrderItemsNestedInput
  }

  export type SupplyOrderItemUncheckedUpdateWithoutSupplyOrderInput = {
    id?: StringFieldUpdateOperationsInput | string
    productId?: StringFieldUpdateOperationsInput | string
    quantity?: IntFieldUpdateOperationsInput | number
    price?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    totalPrice?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SupplyOrderItemUncheckedUpdateManyWithoutSupplyOrderInput = {
    id?: StringFieldUpdateOperationsInput | string
    productId?: StringFieldUpdateOperationsInput | string
    quantity?: IntFieldUpdateOperationsInput | number
    price?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    totalPrice?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }



  /**
   * Batch Payload for updateMany & deleteMany & createMany
   */

  export type BatchPayload = {
    count: number
  }

  /**
   * DMMF
   */
  export const dmmf: runtime.BaseDMMF
}