
/* !!! This is code generated by Prisma. Do not edit directly. !!! */
/* eslint-disable */
// biome-ignore-all lint: generated file
// @ts-nocheck 
/*
 * WARNING: This is an internal file that is subject to change!
 *
 * 🛑 Under no circumstances should you import this file directly! 🛑
 *
 * All exports from this file are wrapped under a `Prisma` namespace object in the client.ts file.
 * While this enables partial backward compatibility, it is not part of the stable public API.
 *
 * If you are looking for your Models, Enums, and Input Types, please import them from the respective
 * model files in the `model` directory!
 */

import * as runtime from "@prisma/client/runtime/client"
import type * as Prisma from "../models"
import { type PrismaClient } from "./class"

export type * from '../models'

export type DMMF = typeof runtime.DMMF

export type PrismaPromise<T> = runtime.Types.Public.PrismaPromise<T>

/**
 * Prisma Errors
 */

export const PrismaClientKnownRequestError = runtime.PrismaClientKnownRequestError
export type PrismaClientKnownRequestError = runtime.PrismaClientKnownRequestError

export const PrismaClientUnknownRequestError = runtime.PrismaClientUnknownRequestError
export type PrismaClientUnknownRequestError = runtime.PrismaClientUnknownRequestError

export const PrismaClientRustPanicError = runtime.PrismaClientRustPanicError
export type PrismaClientRustPanicError = runtime.PrismaClientRustPanicError

export const PrismaClientInitializationError = runtime.PrismaClientInitializationError
export type PrismaClientInitializationError = runtime.PrismaClientInitializationError

export const PrismaClientValidationError = runtime.PrismaClientValidationError
export type PrismaClientValidationError = runtime.PrismaClientValidationError

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



/**
 * Decimal.js
 */
export const Decimal = runtime.Decimal
export type Decimal = runtime.Decimal

export type DecimalJsLike = runtime.DecimalJsLike

/**
* Extensions
*/
export type Extension = runtime.Types.Extensions.UserArgs
export const getExtensionContext = runtime.Extensions.getExtensionContext
export type Args<T, F extends runtime.Operation> = runtime.Types.Public.Args<T, F>
export type Payload<T, F extends runtime.Operation = never> = runtime.Types.Public.Payload<T, F>
export type Result<T, A, F extends runtime.Operation> = runtime.Types.Public.Result<T, A, F>
export type Exact<A, W> = runtime.Types.Public.Exact<A, W>

export type PrismaVersion = {
  client: string
  engine: string
}

/**
 * Prisma Client JS version: 7.9.1
 * Query Engine version: e922089b7d7502aff4249d5da3420f6fa55fc6ad
 */
export const prismaVersion: PrismaVersion = {
  client: "7.9.1",
  engine: "e922089b7d7502aff4249d5da3420f6fa55fc6ad"
}

/**
 * Utility Types
 */

export type Bytes = runtime.Bytes
export type JsonObject = runtime.JsonObject
export type JsonArray = runtime.JsonArray
export type JsonValue = runtime.JsonValue
export type InputJsonObject = runtime.InputJsonObject
export type InputJsonArray = runtime.InputJsonArray
export type InputJsonValue = runtime.InputJsonValue


export const NullTypes = {
  DbNull: runtime.NullTypes.DbNull as (new (secret: never) => typeof runtime.DbNull),
  JsonNull: runtime.NullTypes.JsonNull as (new (secret: never) => typeof runtime.JsonNull),
  AnyNull: runtime.NullTypes.AnyNull as (new (secret: never) => typeof runtime.AnyNull),
}
/**
 * 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 = runtime.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 = runtime.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 = runtime.AnyNull


type SelectAndInclude = {
  select: any
  include: any
}

type SelectAndOmit = {
  select: any
  omit: any
}

/**
 * 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>;

/**
 * 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;
};

/**
 * Resolved type of the argument passed to the `PrismaClient` constructor.
 *
 * When called without a narrower options type (the common case), this resolves
 * to `PrismaClientOptions` directly, which produces a clear TypeScript error
 * message (`not assignable to parameter of type 'PrismaClientOptions'`) when
 * the argument is missing or incomplete. When the user supplies a narrower
 * options type (e.g. via a literal), it falls back to `Subset` to keep
 * filtering out unknown properties.
 */
export type PrismaClientConstructorArgs<Options extends PrismaClientOptions> =
  [PrismaClientOptions] extends [Options] ? PrismaClientOptions : Subset<Options, PrismaClientOptions>;

/**
 * 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
 */
export type XOR<T, U> =
  T extends object ?
  U extends object ?
    ((Without<T, U> & U) | (Without<U, T> & T)) & object
  : 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]

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

export type Union = any

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

export type Boolean = True | False

export type True = 1

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

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

export 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>
export type MaybeTupleToUnion<T> = T extends any[] ? TupleToUnion<T> : T

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

/**
 * Exclude all keys with underscores
 */
export 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',
  Tenant: 'Tenant',
  DeliveryZone: 'DeliveryZone',
  NeighborhoodCatalog: 'NeighborhoodCatalog',
  MediaAsset: 'MediaAsset',
  TenantUser: 'TenantUser',
  Session: 'Session',
  Plan: 'Plan',
  AddonModule: 'AddonModule',
  MarketingPackage: 'MarketingPackage',
  MarketingMaterial: 'MarketingMaterial',
  CampaignLead: 'CampaignLead',
  PlanFeature: 'PlanFeature',
  Subscription: 'Subscription',
  Payment: 'Payment',
  BillingWebhookEvent: 'BillingWebhookEvent',
  Domain: 'Domain',
  ThemeSetting: 'ThemeSetting',
  SiteBanner: 'SiteBanner',
  Product: 'Product',
  ProductCategory: 'ProductCategory',
  Service: 'Service',
  ServiceCategory: 'ServiceCategory',
  QuoteRequest: 'QuoteRequest',
  Order: 'Order',
  OrderItem: 'OrderItem',
  AuditLog: 'AuditLog',
  BlogPost: 'BlogPost'
} as const

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



export interface TypeMapCb<GlobalOmitOptions = {}> extends runtime.Types.Utils.Fn<{extArgs: runtime.Types.Extensions.InternalArgs }, runtime.Types.Utils.Record<string, any>> {
  returns: TypeMap<this['params']['extArgs'], GlobalOmitOptions>
}

export type TypeMap<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs, GlobalOmitOptions = {}> = {
  globalOmitOptions: {
    omit: GlobalOmitOptions
  }
  meta: {
    modelProps: "user" | "tenant" | "deliveryZone" | "neighborhoodCatalog" | "mediaAsset" | "tenantUser" | "session" | "plan" | "addonModule" | "marketingPackage" | "marketingMaterial" | "campaignLead" | "planFeature" | "subscription" | "payment" | "billingWebhookEvent" | "domain" | "themeSetting" | "siteBanner" | "product" | "productCategory" | "service" | "serviceCategory" | "quoteRequest" | "order" | "orderItem" | "auditLog" | "blogPost"
    txIsolationLevel: TransactionIsolationLevel
  }
  model: {
    User: {
      payload: Prisma.$UserPayload<ExtArgs>
      fields: Prisma.UserFieldRefs
      operations: {
        findUnique: {
          args: Prisma.UserFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$UserPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.UserFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$UserPayload>
        }
        findFirst: {
          args: Prisma.UserFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$UserPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.UserFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$UserPayload>
        }
        findMany: {
          args: Prisma.UserFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$UserPayload>[]
        }
        create: {
          args: Prisma.UserCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$UserPayload>
        }
        createMany: {
          args: Prisma.UserCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.UserCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$UserPayload>[]
        }
        delete: {
          args: Prisma.UserDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$UserPayload>
        }
        update: {
          args: Prisma.UserUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$UserPayload>
        }
        deleteMany: {
          args: Prisma.UserDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.UserUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.UserUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$UserPayload>[]
        }
        upsert: {
          args: Prisma.UserUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$UserPayload>
        }
        aggregate: {
          args: Prisma.UserAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateUser>
        }
        groupBy: {
          args: Prisma.UserGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.UserGroupByOutputType>[]
        }
        count: {
          args: Prisma.UserCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.UserCountAggregateOutputType> | number
        }
      }
    }
    Tenant: {
      payload: Prisma.$TenantPayload<ExtArgs>
      fields: Prisma.TenantFieldRefs
      operations: {
        findUnique: {
          args: Prisma.TenantFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$TenantPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.TenantFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$TenantPayload>
        }
        findFirst: {
          args: Prisma.TenantFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$TenantPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.TenantFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$TenantPayload>
        }
        findMany: {
          args: Prisma.TenantFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$TenantPayload>[]
        }
        create: {
          args: Prisma.TenantCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$TenantPayload>
        }
        createMany: {
          args: Prisma.TenantCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.TenantCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$TenantPayload>[]
        }
        delete: {
          args: Prisma.TenantDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$TenantPayload>
        }
        update: {
          args: Prisma.TenantUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$TenantPayload>
        }
        deleteMany: {
          args: Prisma.TenantDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.TenantUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.TenantUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$TenantPayload>[]
        }
        upsert: {
          args: Prisma.TenantUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$TenantPayload>
        }
        aggregate: {
          args: Prisma.TenantAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateTenant>
        }
        groupBy: {
          args: Prisma.TenantGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.TenantGroupByOutputType>[]
        }
        count: {
          args: Prisma.TenantCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.TenantCountAggregateOutputType> | number
        }
      }
    }
    DeliveryZone: {
      payload: Prisma.$DeliveryZonePayload<ExtArgs>
      fields: Prisma.DeliveryZoneFieldRefs
      operations: {
        findUnique: {
          args: Prisma.DeliveryZoneFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$DeliveryZonePayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.DeliveryZoneFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$DeliveryZonePayload>
        }
        findFirst: {
          args: Prisma.DeliveryZoneFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$DeliveryZonePayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.DeliveryZoneFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$DeliveryZonePayload>
        }
        findMany: {
          args: Prisma.DeliveryZoneFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$DeliveryZonePayload>[]
        }
        create: {
          args: Prisma.DeliveryZoneCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$DeliveryZonePayload>
        }
        createMany: {
          args: Prisma.DeliveryZoneCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.DeliveryZoneCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$DeliveryZonePayload>[]
        }
        delete: {
          args: Prisma.DeliveryZoneDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$DeliveryZonePayload>
        }
        update: {
          args: Prisma.DeliveryZoneUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$DeliveryZonePayload>
        }
        deleteMany: {
          args: Prisma.DeliveryZoneDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.DeliveryZoneUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.DeliveryZoneUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$DeliveryZonePayload>[]
        }
        upsert: {
          args: Prisma.DeliveryZoneUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$DeliveryZonePayload>
        }
        aggregate: {
          args: Prisma.DeliveryZoneAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateDeliveryZone>
        }
        groupBy: {
          args: Prisma.DeliveryZoneGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.DeliveryZoneGroupByOutputType>[]
        }
        count: {
          args: Prisma.DeliveryZoneCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.DeliveryZoneCountAggregateOutputType> | number
        }
      }
    }
    NeighborhoodCatalog: {
      payload: Prisma.$NeighborhoodCatalogPayload<ExtArgs>
      fields: Prisma.NeighborhoodCatalogFieldRefs
      operations: {
        findUnique: {
          args: Prisma.NeighborhoodCatalogFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$NeighborhoodCatalogPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.NeighborhoodCatalogFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$NeighborhoodCatalogPayload>
        }
        findFirst: {
          args: Prisma.NeighborhoodCatalogFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$NeighborhoodCatalogPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.NeighborhoodCatalogFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$NeighborhoodCatalogPayload>
        }
        findMany: {
          args: Prisma.NeighborhoodCatalogFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$NeighborhoodCatalogPayload>[]
        }
        create: {
          args: Prisma.NeighborhoodCatalogCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$NeighborhoodCatalogPayload>
        }
        createMany: {
          args: Prisma.NeighborhoodCatalogCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.NeighborhoodCatalogCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$NeighborhoodCatalogPayload>[]
        }
        delete: {
          args: Prisma.NeighborhoodCatalogDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$NeighborhoodCatalogPayload>
        }
        update: {
          args: Prisma.NeighborhoodCatalogUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$NeighborhoodCatalogPayload>
        }
        deleteMany: {
          args: Prisma.NeighborhoodCatalogDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.NeighborhoodCatalogUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.NeighborhoodCatalogUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$NeighborhoodCatalogPayload>[]
        }
        upsert: {
          args: Prisma.NeighborhoodCatalogUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$NeighborhoodCatalogPayload>
        }
        aggregate: {
          args: Prisma.NeighborhoodCatalogAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateNeighborhoodCatalog>
        }
        groupBy: {
          args: Prisma.NeighborhoodCatalogGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.NeighborhoodCatalogGroupByOutputType>[]
        }
        count: {
          args: Prisma.NeighborhoodCatalogCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.NeighborhoodCatalogCountAggregateOutputType> | number
        }
      }
    }
    MediaAsset: {
      payload: Prisma.$MediaAssetPayload<ExtArgs>
      fields: Prisma.MediaAssetFieldRefs
      operations: {
        findUnique: {
          args: Prisma.MediaAssetFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$MediaAssetPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.MediaAssetFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$MediaAssetPayload>
        }
        findFirst: {
          args: Prisma.MediaAssetFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$MediaAssetPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.MediaAssetFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$MediaAssetPayload>
        }
        findMany: {
          args: Prisma.MediaAssetFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$MediaAssetPayload>[]
        }
        create: {
          args: Prisma.MediaAssetCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$MediaAssetPayload>
        }
        createMany: {
          args: Prisma.MediaAssetCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.MediaAssetCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$MediaAssetPayload>[]
        }
        delete: {
          args: Prisma.MediaAssetDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$MediaAssetPayload>
        }
        update: {
          args: Prisma.MediaAssetUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$MediaAssetPayload>
        }
        deleteMany: {
          args: Prisma.MediaAssetDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.MediaAssetUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.MediaAssetUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$MediaAssetPayload>[]
        }
        upsert: {
          args: Prisma.MediaAssetUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$MediaAssetPayload>
        }
        aggregate: {
          args: Prisma.MediaAssetAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateMediaAsset>
        }
        groupBy: {
          args: Prisma.MediaAssetGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.MediaAssetGroupByOutputType>[]
        }
        count: {
          args: Prisma.MediaAssetCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.MediaAssetCountAggregateOutputType> | number
        }
      }
    }
    TenantUser: {
      payload: Prisma.$TenantUserPayload<ExtArgs>
      fields: Prisma.TenantUserFieldRefs
      operations: {
        findUnique: {
          args: Prisma.TenantUserFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$TenantUserPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.TenantUserFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$TenantUserPayload>
        }
        findFirst: {
          args: Prisma.TenantUserFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$TenantUserPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.TenantUserFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$TenantUserPayload>
        }
        findMany: {
          args: Prisma.TenantUserFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$TenantUserPayload>[]
        }
        create: {
          args: Prisma.TenantUserCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$TenantUserPayload>
        }
        createMany: {
          args: Prisma.TenantUserCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.TenantUserCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$TenantUserPayload>[]
        }
        delete: {
          args: Prisma.TenantUserDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$TenantUserPayload>
        }
        update: {
          args: Prisma.TenantUserUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$TenantUserPayload>
        }
        deleteMany: {
          args: Prisma.TenantUserDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.TenantUserUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.TenantUserUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$TenantUserPayload>[]
        }
        upsert: {
          args: Prisma.TenantUserUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$TenantUserPayload>
        }
        aggregate: {
          args: Prisma.TenantUserAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateTenantUser>
        }
        groupBy: {
          args: Prisma.TenantUserGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.TenantUserGroupByOutputType>[]
        }
        count: {
          args: Prisma.TenantUserCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.TenantUserCountAggregateOutputType> | number
        }
      }
    }
    Session: {
      payload: Prisma.$SessionPayload<ExtArgs>
      fields: Prisma.SessionFieldRefs
      operations: {
        findUnique: {
          args: Prisma.SessionFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SessionPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.SessionFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SessionPayload>
        }
        findFirst: {
          args: Prisma.SessionFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SessionPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.SessionFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SessionPayload>
        }
        findMany: {
          args: Prisma.SessionFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SessionPayload>[]
        }
        create: {
          args: Prisma.SessionCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SessionPayload>
        }
        createMany: {
          args: Prisma.SessionCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.SessionCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SessionPayload>[]
        }
        delete: {
          args: Prisma.SessionDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SessionPayload>
        }
        update: {
          args: Prisma.SessionUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SessionPayload>
        }
        deleteMany: {
          args: Prisma.SessionDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.SessionUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.SessionUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SessionPayload>[]
        }
        upsert: {
          args: Prisma.SessionUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SessionPayload>
        }
        aggregate: {
          args: Prisma.SessionAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateSession>
        }
        groupBy: {
          args: Prisma.SessionGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.SessionGroupByOutputType>[]
        }
        count: {
          args: Prisma.SessionCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.SessionCountAggregateOutputType> | number
        }
      }
    }
    Plan: {
      payload: Prisma.$PlanPayload<ExtArgs>
      fields: Prisma.PlanFieldRefs
      operations: {
        findUnique: {
          args: Prisma.PlanFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$PlanPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.PlanFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$PlanPayload>
        }
        findFirst: {
          args: Prisma.PlanFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$PlanPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.PlanFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$PlanPayload>
        }
        findMany: {
          args: Prisma.PlanFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$PlanPayload>[]
        }
        create: {
          args: Prisma.PlanCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$PlanPayload>
        }
        createMany: {
          args: Prisma.PlanCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.PlanCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$PlanPayload>[]
        }
        delete: {
          args: Prisma.PlanDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$PlanPayload>
        }
        update: {
          args: Prisma.PlanUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$PlanPayload>
        }
        deleteMany: {
          args: Prisma.PlanDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.PlanUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.PlanUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$PlanPayload>[]
        }
        upsert: {
          args: Prisma.PlanUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$PlanPayload>
        }
        aggregate: {
          args: Prisma.PlanAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregatePlan>
        }
        groupBy: {
          args: Prisma.PlanGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.PlanGroupByOutputType>[]
        }
        count: {
          args: Prisma.PlanCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.PlanCountAggregateOutputType> | number
        }
      }
    }
    AddonModule: {
      payload: Prisma.$AddonModulePayload<ExtArgs>
      fields: Prisma.AddonModuleFieldRefs
      operations: {
        findUnique: {
          args: Prisma.AddonModuleFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AddonModulePayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.AddonModuleFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AddonModulePayload>
        }
        findFirst: {
          args: Prisma.AddonModuleFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AddonModulePayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.AddonModuleFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AddonModulePayload>
        }
        findMany: {
          args: Prisma.AddonModuleFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AddonModulePayload>[]
        }
        create: {
          args: Prisma.AddonModuleCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AddonModulePayload>
        }
        createMany: {
          args: Prisma.AddonModuleCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.AddonModuleCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AddonModulePayload>[]
        }
        delete: {
          args: Prisma.AddonModuleDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AddonModulePayload>
        }
        update: {
          args: Prisma.AddonModuleUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AddonModulePayload>
        }
        deleteMany: {
          args: Prisma.AddonModuleDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.AddonModuleUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.AddonModuleUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AddonModulePayload>[]
        }
        upsert: {
          args: Prisma.AddonModuleUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AddonModulePayload>
        }
        aggregate: {
          args: Prisma.AddonModuleAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateAddonModule>
        }
        groupBy: {
          args: Prisma.AddonModuleGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AddonModuleGroupByOutputType>[]
        }
        count: {
          args: Prisma.AddonModuleCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AddonModuleCountAggregateOutputType> | number
        }
      }
    }
    MarketingPackage: {
      payload: Prisma.$MarketingPackagePayload<ExtArgs>
      fields: Prisma.MarketingPackageFieldRefs
      operations: {
        findUnique: {
          args: Prisma.MarketingPackageFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$MarketingPackagePayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.MarketingPackageFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$MarketingPackagePayload>
        }
        findFirst: {
          args: Prisma.MarketingPackageFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$MarketingPackagePayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.MarketingPackageFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$MarketingPackagePayload>
        }
        findMany: {
          args: Prisma.MarketingPackageFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$MarketingPackagePayload>[]
        }
        create: {
          args: Prisma.MarketingPackageCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$MarketingPackagePayload>
        }
        createMany: {
          args: Prisma.MarketingPackageCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.MarketingPackageCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$MarketingPackagePayload>[]
        }
        delete: {
          args: Prisma.MarketingPackageDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$MarketingPackagePayload>
        }
        update: {
          args: Prisma.MarketingPackageUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$MarketingPackagePayload>
        }
        deleteMany: {
          args: Prisma.MarketingPackageDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.MarketingPackageUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.MarketingPackageUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$MarketingPackagePayload>[]
        }
        upsert: {
          args: Prisma.MarketingPackageUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$MarketingPackagePayload>
        }
        aggregate: {
          args: Prisma.MarketingPackageAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateMarketingPackage>
        }
        groupBy: {
          args: Prisma.MarketingPackageGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.MarketingPackageGroupByOutputType>[]
        }
        count: {
          args: Prisma.MarketingPackageCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.MarketingPackageCountAggregateOutputType> | number
        }
      }
    }
    MarketingMaterial: {
      payload: Prisma.$MarketingMaterialPayload<ExtArgs>
      fields: Prisma.MarketingMaterialFieldRefs
      operations: {
        findUnique: {
          args: Prisma.MarketingMaterialFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$MarketingMaterialPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.MarketingMaterialFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$MarketingMaterialPayload>
        }
        findFirst: {
          args: Prisma.MarketingMaterialFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$MarketingMaterialPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.MarketingMaterialFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$MarketingMaterialPayload>
        }
        findMany: {
          args: Prisma.MarketingMaterialFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$MarketingMaterialPayload>[]
        }
        create: {
          args: Prisma.MarketingMaterialCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$MarketingMaterialPayload>
        }
        createMany: {
          args: Prisma.MarketingMaterialCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.MarketingMaterialCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$MarketingMaterialPayload>[]
        }
        delete: {
          args: Prisma.MarketingMaterialDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$MarketingMaterialPayload>
        }
        update: {
          args: Prisma.MarketingMaterialUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$MarketingMaterialPayload>
        }
        deleteMany: {
          args: Prisma.MarketingMaterialDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.MarketingMaterialUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.MarketingMaterialUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$MarketingMaterialPayload>[]
        }
        upsert: {
          args: Prisma.MarketingMaterialUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$MarketingMaterialPayload>
        }
        aggregate: {
          args: Prisma.MarketingMaterialAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateMarketingMaterial>
        }
        groupBy: {
          args: Prisma.MarketingMaterialGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.MarketingMaterialGroupByOutputType>[]
        }
        count: {
          args: Prisma.MarketingMaterialCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.MarketingMaterialCountAggregateOutputType> | number
        }
      }
    }
    CampaignLead: {
      payload: Prisma.$CampaignLeadPayload<ExtArgs>
      fields: Prisma.CampaignLeadFieldRefs
      operations: {
        findUnique: {
          args: Prisma.CampaignLeadFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$CampaignLeadPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.CampaignLeadFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$CampaignLeadPayload>
        }
        findFirst: {
          args: Prisma.CampaignLeadFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$CampaignLeadPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.CampaignLeadFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$CampaignLeadPayload>
        }
        findMany: {
          args: Prisma.CampaignLeadFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$CampaignLeadPayload>[]
        }
        create: {
          args: Prisma.CampaignLeadCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$CampaignLeadPayload>
        }
        createMany: {
          args: Prisma.CampaignLeadCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.CampaignLeadCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$CampaignLeadPayload>[]
        }
        delete: {
          args: Prisma.CampaignLeadDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$CampaignLeadPayload>
        }
        update: {
          args: Prisma.CampaignLeadUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$CampaignLeadPayload>
        }
        deleteMany: {
          args: Prisma.CampaignLeadDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.CampaignLeadUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.CampaignLeadUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$CampaignLeadPayload>[]
        }
        upsert: {
          args: Prisma.CampaignLeadUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$CampaignLeadPayload>
        }
        aggregate: {
          args: Prisma.CampaignLeadAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateCampaignLead>
        }
        groupBy: {
          args: Prisma.CampaignLeadGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.CampaignLeadGroupByOutputType>[]
        }
        count: {
          args: Prisma.CampaignLeadCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.CampaignLeadCountAggregateOutputType> | number
        }
      }
    }
    PlanFeature: {
      payload: Prisma.$PlanFeaturePayload<ExtArgs>
      fields: Prisma.PlanFeatureFieldRefs
      operations: {
        findUnique: {
          args: Prisma.PlanFeatureFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$PlanFeaturePayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.PlanFeatureFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$PlanFeaturePayload>
        }
        findFirst: {
          args: Prisma.PlanFeatureFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$PlanFeaturePayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.PlanFeatureFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$PlanFeaturePayload>
        }
        findMany: {
          args: Prisma.PlanFeatureFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$PlanFeaturePayload>[]
        }
        create: {
          args: Prisma.PlanFeatureCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$PlanFeaturePayload>
        }
        createMany: {
          args: Prisma.PlanFeatureCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.PlanFeatureCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$PlanFeaturePayload>[]
        }
        delete: {
          args: Prisma.PlanFeatureDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$PlanFeaturePayload>
        }
        update: {
          args: Prisma.PlanFeatureUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$PlanFeaturePayload>
        }
        deleteMany: {
          args: Prisma.PlanFeatureDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.PlanFeatureUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.PlanFeatureUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$PlanFeaturePayload>[]
        }
        upsert: {
          args: Prisma.PlanFeatureUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$PlanFeaturePayload>
        }
        aggregate: {
          args: Prisma.PlanFeatureAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregatePlanFeature>
        }
        groupBy: {
          args: Prisma.PlanFeatureGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.PlanFeatureGroupByOutputType>[]
        }
        count: {
          args: Prisma.PlanFeatureCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.PlanFeatureCountAggregateOutputType> | number
        }
      }
    }
    Subscription: {
      payload: Prisma.$SubscriptionPayload<ExtArgs>
      fields: Prisma.SubscriptionFieldRefs
      operations: {
        findUnique: {
          args: Prisma.SubscriptionFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SubscriptionPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.SubscriptionFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SubscriptionPayload>
        }
        findFirst: {
          args: Prisma.SubscriptionFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SubscriptionPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.SubscriptionFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SubscriptionPayload>
        }
        findMany: {
          args: Prisma.SubscriptionFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SubscriptionPayload>[]
        }
        create: {
          args: Prisma.SubscriptionCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SubscriptionPayload>
        }
        createMany: {
          args: Prisma.SubscriptionCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.SubscriptionCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SubscriptionPayload>[]
        }
        delete: {
          args: Prisma.SubscriptionDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SubscriptionPayload>
        }
        update: {
          args: Prisma.SubscriptionUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SubscriptionPayload>
        }
        deleteMany: {
          args: Prisma.SubscriptionDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.SubscriptionUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.SubscriptionUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SubscriptionPayload>[]
        }
        upsert: {
          args: Prisma.SubscriptionUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SubscriptionPayload>
        }
        aggregate: {
          args: Prisma.SubscriptionAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateSubscription>
        }
        groupBy: {
          args: Prisma.SubscriptionGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.SubscriptionGroupByOutputType>[]
        }
        count: {
          args: Prisma.SubscriptionCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.SubscriptionCountAggregateOutputType> | number
        }
      }
    }
    Payment: {
      payload: Prisma.$PaymentPayload<ExtArgs>
      fields: Prisma.PaymentFieldRefs
      operations: {
        findUnique: {
          args: Prisma.PaymentFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$PaymentPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.PaymentFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$PaymentPayload>
        }
        findFirst: {
          args: Prisma.PaymentFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$PaymentPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.PaymentFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$PaymentPayload>
        }
        findMany: {
          args: Prisma.PaymentFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$PaymentPayload>[]
        }
        create: {
          args: Prisma.PaymentCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$PaymentPayload>
        }
        createMany: {
          args: Prisma.PaymentCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.PaymentCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$PaymentPayload>[]
        }
        delete: {
          args: Prisma.PaymentDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$PaymentPayload>
        }
        update: {
          args: Prisma.PaymentUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$PaymentPayload>
        }
        deleteMany: {
          args: Prisma.PaymentDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.PaymentUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.PaymentUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$PaymentPayload>[]
        }
        upsert: {
          args: Prisma.PaymentUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$PaymentPayload>
        }
        aggregate: {
          args: Prisma.PaymentAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregatePayment>
        }
        groupBy: {
          args: Prisma.PaymentGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.PaymentGroupByOutputType>[]
        }
        count: {
          args: Prisma.PaymentCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.PaymentCountAggregateOutputType> | number
        }
      }
    }
    BillingWebhookEvent: {
      payload: Prisma.$BillingWebhookEventPayload<ExtArgs>
      fields: Prisma.BillingWebhookEventFieldRefs
      operations: {
        findUnique: {
          args: Prisma.BillingWebhookEventFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$BillingWebhookEventPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.BillingWebhookEventFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$BillingWebhookEventPayload>
        }
        findFirst: {
          args: Prisma.BillingWebhookEventFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$BillingWebhookEventPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.BillingWebhookEventFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$BillingWebhookEventPayload>
        }
        findMany: {
          args: Prisma.BillingWebhookEventFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$BillingWebhookEventPayload>[]
        }
        create: {
          args: Prisma.BillingWebhookEventCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$BillingWebhookEventPayload>
        }
        createMany: {
          args: Prisma.BillingWebhookEventCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.BillingWebhookEventCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$BillingWebhookEventPayload>[]
        }
        delete: {
          args: Prisma.BillingWebhookEventDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$BillingWebhookEventPayload>
        }
        update: {
          args: Prisma.BillingWebhookEventUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$BillingWebhookEventPayload>
        }
        deleteMany: {
          args: Prisma.BillingWebhookEventDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.BillingWebhookEventUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.BillingWebhookEventUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$BillingWebhookEventPayload>[]
        }
        upsert: {
          args: Prisma.BillingWebhookEventUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$BillingWebhookEventPayload>
        }
        aggregate: {
          args: Prisma.BillingWebhookEventAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateBillingWebhookEvent>
        }
        groupBy: {
          args: Prisma.BillingWebhookEventGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.BillingWebhookEventGroupByOutputType>[]
        }
        count: {
          args: Prisma.BillingWebhookEventCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.BillingWebhookEventCountAggregateOutputType> | number
        }
      }
    }
    Domain: {
      payload: Prisma.$DomainPayload<ExtArgs>
      fields: Prisma.DomainFieldRefs
      operations: {
        findUnique: {
          args: Prisma.DomainFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$DomainPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.DomainFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$DomainPayload>
        }
        findFirst: {
          args: Prisma.DomainFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$DomainPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.DomainFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$DomainPayload>
        }
        findMany: {
          args: Prisma.DomainFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$DomainPayload>[]
        }
        create: {
          args: Prisma.DomainCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$DomainPayload>
        }
        createMany: {
          args: Prisma.DomainCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.DomainCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$DomainPayload>[]
        }
        delete: {
          args: Prisma.DomainDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$DomainPayload>
        }
        update: {
          args: Prisma.DomainUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$DomainPayload>
        }
        deleteMany: {
          args: Prisma.DomainDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.DomainUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.DomainUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$DomainPayload>[]
        }
        upsert: {
          args: Prisma.DomainUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$DomainPayload>
        }
        aggregate: {
          args: Prisma.DomainAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateDomain>
        }
        groupBy: {
          args: Prisma.DomainGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.DomainGroupByOutputType>[]
        }
        count: {
          args: Prisma.DomainCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.DomainCountAggregateOutputType> | number
        }
      }
    }
    ThemeSetting: {
      payload: Prisma.$ThemeSettingPayload<ExtArgs>
      fields: Prisma.ThemeSettingFieldRefs
      operations: {
        findUnique: {
          args: Prisma.ThemeSettingFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ThemeSettingPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.ThemeSettingFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ThemeSettingPayload>
        }
        findFirst: {
          args: Prisma.ThemeSettingFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ThemeSettingPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.ThemeSettingFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ThemeSettingPayload>
        }
        findMany: {
          args: Prisma.ThemeSettingFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ThemeSettingPayload>[]
        }
        create: {
          args: Prisma.ThemeSettingCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ThemeSettingPayload>
        }
        createMany: {
          args: Prisma.ThemeSettingCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.ThemeSettingCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ThemeSettingPayload>[]
        }
        delete: {
          args: Prisma.ThemeSettingDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ThemeSettingPayload>
        }
        update: {
          args: Prisma.ThemeSettingUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ThemeSettingPayload>
        }
        deleteMany: {
          args: Prisma.ThemeSettingDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.ThemeSettingUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.ThemeSettingUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ThemeSettingPayload>[]
        }
        upsert: {
          args: Prisma.ThemeSettingUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ThemeSettingPayload>
        }
        aggregate: {
          args: Prisma.ThemeSettingAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateThemeSetting>
        }
        groupBy: {
          args: Prisma.ThemeSettingGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.ThemeSettingGroupByOutputType>[]
        }
        count: {
          args: Prisma.ThemeSettingCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.ThemeSettingCountAggregateOutputType> | number
        }
      }
    }
    SiteBanner: {
      payload: Prisma.$SiteBannerPayload<ExtArgs>
      fields: Prisma.SiteBannerFieldRefs
      operations: {
        findUnique: {
          args: Prisma.SiteBannerFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SiteBannerPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.SiteBannerFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SiteBannerPayload>
        }
        findFirst: {
          args: Prisma.SiteBannerFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SiteBannerPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.SiteBannerFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SiteBannerPayload>
        }
        findMany: {
          args: Prisma.SiteBannerFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SiteBannerPayload>[]
        }
        create: {
          args: Prisma.SiteBannerCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SiteBannerPayload>
        }
        createMany: {
          args: Prisma.SiteBannerCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.SiteBannerCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SiteBannerPayload>[]
        }
        delete: {
          args: Prisma.SiteBannerDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SiteBannerPayload>
        }
        update: {
          args: Prisma.SiteBannerUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SiteBannerPayload>
        }
        deleteMany: {
          args: Prisma.SiteBannerDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.SiteBannerUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.SiteBannerUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SiteBannerPayload>[]
        }
        upsert: {
          args: Prisma.SiteBannerUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SiteBannerPayload>
        }
        aggregate: {
          args: Prisma.SiteBannerAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateSiteBanner>
        }
        groupBy: {
          args: Prisma.SiteBannerGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.SiteBannerGroupByOutputType>[]
        }
        count: {
          args: Prisma.SiteBannerCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.SiteBannerCountAggregateOutputType> | number
        }
      }
    }
    Product: {
      payload: Prisma.$ProductPayload<ExtArgs>
      fields: Prisma.ProductFieldRefs
      operations: {
        findUnique: {
          args: Prisma.ProductFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ProductPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.ProductFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ProductPayload>
        }
        findFirst: {
          args: Prisma.ProductFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ProductPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.ProductFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ProductPayload>
        }
        findMany: {
          args: Prisma.ProductFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ProductPayload>[]
        }
        create: {
          args: Prisma.ProductCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ProductPayload>
        }
        createMany: {
          args: Prisma.ProductCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.ProductCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ProductPayload>[]
        }
        delete: {
          args: Prisma.ProductDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ProductPayload>
        }
        update: {
          args: Prisma.ProductUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ProductPayload>
        }
        deleteMany: {
          args: Prisma.ProductDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.ProductUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.ProductUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ProductPayload>[]
        }
        upsert: {
          args: Prisma.ProductUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ProductPayload>
        }
        aggregate: {
          args: Prisma.ProductAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateProduct>
        }
        groupBy: {
          args: Prisma.ProductGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.ProductGroupByOutputType>[]
        }
        count: {
          args: Prisma.ProductCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.ProductCountAggregateOutputType> | number
        }
      }
    }
    ProductCategory: {
      payload: Prisma.$ProductCategoryPayload<ExtArgs>
      fields: Prisma.ProductCategoryFieldRefs
      operations: {
        findUnique: {
          args: Prisma.ProductCategoryFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ProductCategoryPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.ProductCategoryFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ProductCategoryPayload>
        }
        findFirst: {
          args: Prisma.ProductCategoryFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ProductCategoryPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.ProductCategoryFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ProductCategoryPayload>
        }
        findMany: {
          args: Prisma.ProductCategoryFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ProductCategoryPayload>[]
        }
        create: {
          args: Prisma.ProductCategoryCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ProductCategoryPayload>
        }
        createMany: {
          args: Prisma.ProductCategoryCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.ProductCategoryCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ProductCategoryPayload>[]
        }
        delete: {
          args: Prisma.ProductCategoryDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ProductCategoryPayload>
        }
        update: {
          args: Prisma.ProductCategoryUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ProductCategoryPayload>
        }
        deleteMany: {
          args: Prisma.ProductCategoryDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.ProductCategoryUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.ProductCategoryUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ProductCategoryPayload>[]
        }
        upsert: {
          args: Prisma.ProductCategoryUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ProductCategoryPayload>
        }
        aggregate: {
          args: Prisma.ProductCategoryAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateProductCategory>
        }
        groupBy: {
          args: Prisma.ProductCategoryGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.ProductCategoryGroupByOutputType>[]
        }
        count: {
          args: Prisma.ProductCategoryCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.ProductCategoryCountAggregateOutputType> | number
        }
      }
    }
    Service: {
      payload: Prisma.$ServicePayload<ExtArgs>
      fields: Prisma.ServiceFieldRefs
      operations: {
        findUnique: {
          args: Prisma.ServiceFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ServicePayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.ServiceFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ServicePayload>
        }
        findFirst: {
          args: Prisma.ServiceFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ServicePayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.ServiceFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ServicePayload>
        }
        findMany: {
          args: Prisma.ServiceFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ServicePayload>[]
        }
        create: {
          args: Prisma.ServiceCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ServicePayload>
        }
        createMany: {
          args: Prisma.ServiceCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.ServiceCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ServicePayload>[]
        }
        delete: {
          args: Prisma.ServiceDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ServicePayload>
        }
        update: {
          args: Prisma.ServiceUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ServicePayload>
        }
        deleteMany: {
          args: Prisma.ServiceDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.ServiceUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.ServiceUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ServicePayload>[]
        }
        upsert: {
          args: Prisma.ServiceUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ServicePayload>
        }
        aggregate: {
          args: Prisma.ServiceAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateService>
        }
        groupBy: {
          args: Prisma.ServiceGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.ServiceGroupByOutputType>[]
        }
        count: {
          args: Prisma.ServiceCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.ServiceCountAggregateOutputType> | number
        }
      }
    }
    ServiceCategory: {
      payload: Prisma.$ServiceCategoryPayload<ExtArgs>
      fields: Prisma.ServiceCategoryFieldRefs
      operations: {
        findUnique: {
          args: Prisma.ServiceCategoryFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ServiceCategoryPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.ServiceCategoryFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ServiceCategoryPayload>
        }
        findFirst: {
          args: Prisma.ServiceCategoryFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ServiceCategoryPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.ServiceCategoryFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ServiceCategoryPayload>
        }
        findMany: {
          args: Prisma.ServiceCategoryFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ServiceCategoryPayload>[]
        }
        create: {
          args: Prisma.ServiceCategoryCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ServiceCategoryPayload>
        }
        createMany: {
          args: Prisma.ServiceCategoryCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.ServiceCategoryCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ServiceCategoryPayload>[]
        }
        delete: {
          args: Prisma.ServiceCategoryDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ServiceCategoryPayload>
        }
        update: {
          args: Prisma.ServiceCategoryUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ServiceCategoryPayload>
        }
        deleteMany: {
          args: Prisma.ServiceCategoryDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.ServiceCategoryUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.ServiceCategoryUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ServiceCategoryPayload>[]
        }
        upsert: {
          args: Prisma.ServiceCategoryUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ServiceCategoryPayload>
        }
        aggregate: {
          args: Prisma.ServiceCategoryAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateServiceCategory>
        }
        groupBy: {
          args: Prisma.ServiceCategoryGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.ServiceCategoryGroupByOutputType>[]
        }
        count: {
          args: Prisma.ServiceCategoryCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.ServiceCategoryCountAggregateOutputType> | number
        }
      }
    }
    QuoteRequest: {
      payload: Prisma.$QuoteRequestPayload<ExtArgs>
      fields: Prisma.QuoteRequestFieldRefs
      operations: {
        findUnique: {
          args: Prisma.QuoteRequestFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$QuoteRequestPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.QuoteRequestFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$QuoteRequestPayload>
        }
        findFirst: {
          args: Prisma.QuoteRequestFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$QuoteRequestPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.QuoteRequestFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$QuoteRequestPayload>
        }
        findMany: {
          args: Prisma.QuoteRequestFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$QuoteRequestPayload>[]
        }
        create: {
          args: Prisma.QuoteRequestCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$QuoteRequestPayload>
        }
        createMany: {
          args: Prisma.QuoteRequestCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.QuoteRequestCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$QuoteRequestPayload>[]
        }
        delete: {
          args: Prisma.QuoteRequestDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$QuoteRequestPayload>
        }
        update: {
          args: Prisma.QuoteRequestUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$QuoteRequestPayload>
        }
        deleteMany: {
          args: Prisma.QuoteRequestDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.QuoteRequestUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.QuoteRequestUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$QuoteRequestPayload>[]
        }
        upsert: {
          args: Prisma.QuoteRequestUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$QuoteRequestPayload>
        }
        aggregate: {
          args: Prisma.QuoteRequestAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateQuoteRequest>
        }
        groupBy: {
          args: Prisma.QuoteRequestGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.QuoteRequestGroupByOutputType>[]
        }
        count: {
          args: Prisma.QuoteRequestCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.QuoteRequestCountAggregateOutputType> | number
        }
      }
    }
    Order: {
      payload: Prisma.$OrderPayload<ExtArgs>
      fields: Prisma.OrderFieldRefs
      operations: {
        findUnique: {
          args: Prisma.OrderFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OrderPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.OrderFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OrderPayload>
        }
        findFirst: {
          args: Prisma.OrderFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OrderPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.OrderFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OrderPayload>
        }
        findMany: {
          args: Prisma.OrderFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OrderPayload>[]
        }
        create: {
          args: Prisma.OrderCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OrderPayload>
        }
        createMany: {
          args: Prisma.OrderCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.OrderCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OrderPayload>[]
        }
        delete: {
          args: Prisma.OrderDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OrderPayload>
        }
        update: {
          args: Prisma.OrderUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OrderPayload>
        }
        deleteMany: {
          args: Prisma.OrderDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.OrderUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.OrderUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OrderPayload>[]
        }
        upsert: {
          args: Prisma.OrderUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OrderPayload>
        }
        aggregate: {
          args: Prisma.OrderAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateOrder>
        }
        groupBy: {
          args: Prisma.OrderGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.OrderGroupByOutputType>[]
        }
        count: {
          args: Prisma.OrderCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.OrderCountAggregateOutputType> | number
        }
      }
    }
    OrderItem: {
      payload: Prisma.$OrderItemPayload<ExtArgs>
      fields: Prisma.OrderItemFieldRefs
      operations: {
        findUnique: {
          args: Prisma.OrderItemFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OrderItemPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.OrderItemFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OrderItemPayload>
        }
        findFirst: {
          args: Prisma.OrderItemFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OrderItemPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.OrderItemFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OrderItemPayload>
        }
        findMany: {
          args: Prisma.OrderItemFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OrderItemPayload>[]
        }
        create: {
          args: Prisma.OrderItemCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OrderItemPayload>
        }
        createMany: {
          args: Prisma.OrderItemCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.OrderItemCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OrderItemPayload>[]
        }
        delete: {
          args: Prisma.OrderItemDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OrderItemPayload>
        }
        update: {
          args: Prisma.OrderItemUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OrderItemPayload>
        }
        deleteMany: {
          args: Prisma.OrderItemDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.OrderItemUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.OrderItemUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OrderItemPayload>[]
        }
        upsert: {
          args: Prisma.OrderItemUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OrderItemPayload>
        }
        aggregate: {
          args: Prisma.OrderItemAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateOrderItem>
        }
        groupBy: {
          args: Prisma.OrderItemGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.OrderItemGroupByOutputType>[]
        }
        count: {
          args: Prisma.OrderItemCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.OrderItemCountAggregateOutputType> | number
        }
      }
    }
    AuditLog: {
      payload: Prisma.$AuditLogPayload<ExtArgs>
      fields: Prisma.AuditLogFieldRefs
      operations: {
        findUnique: {
          args: Prisma.AuditLogFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AuditLogPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.AuditLogFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AuditLogPayload>
        }
        findFirst: {
          args: Prisma.AuditLogFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AuditLogPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.AuditLogFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AuditLogPayload>
        }
        findMany: {
          args: Prisma.AuditLogFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AuditLogPayload>[]
        }
        create: {
          args: Prisma.AuditLogCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AuditLogPayload>
        }
        createMany: {
          args: Prisma.AuditLogCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.AuditLogCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AuditLogPayload>[]
        }
        delete: {
          args: Prisma.AuditLogDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AuditLogPayload>
        }
        update: {
          args: Prisma.AuditLogUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AuditLogPayload>
        }
        deleteMany: {
          args: Prisma.AuditLogDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.AuditLogUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.AuditLogUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AuditLogPayload>[]
        }
        upsert: {
          args: Prisma.AuditLogUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AuditLogPayload>
        }
        aggregate: {
          args: Prisma.AuditLogAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateAuditLog>
        }
        groupBy: {
          args: Prisma.AuditLogGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AuditLogGroupByOutputType>[]
        }
        count: {
          args: Prisma.AuditLogCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AuditLogCountAggregateOutputType> | number
        }
      }
    }
    BlogPost: {
      payload: Prisma.$BlogPostPayload<ExtArgs>
      fields: Prisma.BlogPostFieldRefs
      operations: {
        findUnique: {
          args: Prisma.BlogPostFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$BlogPostPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.BlogPostFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$BlogPostPayload>
        }
        findFirst: {
          args: Prisma.BlogPostFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$BlogPostPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.BlogPostFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$BlogPostPayload>
        }
        findMany: {
          args: Prisma.BlogPostFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$BlogPostPayload>[]
        }
        create: {
          args: Prisma.BlogPostCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$BlogPostPayload>
        }
        createMany: {
          args: Prisma.BlogPostCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.BlogPostCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$BlogPostPayload>[]
        }
        delete: {
          args: Prisma.BlogPostDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$BlogPostPayload>
        }
        update: {
          args: Prisma.BlogPostUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$BlogPostPayload>
        }
        deleteMany: {
          args: Prisma.BlogPostDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.BlogPostUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.BlogPostUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$BlogPostPayload>[]
        }
        upsert: {
          args: Prisma.BlogPostUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$BlogPostPayload>
        }
        aggregate: {
          args: Prisma.BlogPostAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateBlogPost>
        }
        groupBy: {
          args: Prisma.BlogPostGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.BlogPostGroupByOutputType>[]
        }
        count: {
          args: Prisma.BlogPostCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.BlogPostCountAggregateOutputType> | number
        }
      }
    }
  }
} & {
  other: {
    payload: any
    operations: {
      $executeRaw: {
        args: [query: TemplateStringsArray | Sql, ...values: any[]],
        result: any
      }
      $executeRawUnsafe: {
        args: [query: string, ...values: any[]],
        result: any
      }
      $queryRaw: {
        args: [query: TemplateStringsArray | Sql, ...values: any[]],
        result: any
      }
      $queryRawUnsafe: {
        args: [query: string, ...values: any[]],
        result: any
      }
    }
  }
}

/**
 * Enums
 */

export const TransactionIsolationLevel = runtime.makeStrictEnum({
  ReadUncommitted: 'ReadUncommitted',
  ReadCommitted: 'ReadCommitted',
  RepeatableRead: 'RepeatableRead',
  Serializable: 'Serializable'
} as const)

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


export const UserScalarFieldEnum = {
  id: 'id',
  name: 'name',
  email: 'email',
  phone: 'phone',
  passwordHash: 'passwordHash',
  isSuperAdmin: 'isSuperAdmin',
  platformRole: 'platformRole',
  commissionBps: 'commissionBps',
  managerId: 'managerId',
  createdAt: 'createdAt',
  updatedAt: 'updatedAt',
  deletedAt: 'deletedAt'
} as const

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


export const TenantScalarFieldEnum = {
  id: 'id',
  name: 'name',
  legalDocument: 'legalDocument',
  slug: 'slug',
  email: 'email',
  phone: 'phone',
  whatsapp: 'whatsapp',
  city: 'city',
  state: 'state',
  segment: 'segment',
  description: 'description',
  addressLine: 'addressLine',
  postalCode: 'postalCode',
  instagramUrl: 'instagramUrl',
  facebookUrl: 'facebookUrl',
  businessModel: 'businessModel',
  status: 'status',
  directoryOptIn: 'directoryOptIn',
  createdAt: 'createdAt',
  updatedAt: 'updatedAt',
  deletedAt: 'deletedAt',
  deliveryEnabled: 'deliveryEnabled',
  deliveryPriceCents: 'deliveryPriceCents',
  showGoogleMap: 'showGoogleMap',
  feature1Title: 'feature1Title',
  feature1Description: 'feature1Description',
  feature2Title: 'feature2Title',
  feature2Description: 'feature2Description',
  feature3Title: 'feature3Title',
  feature3Description: 'feature3Description'
} as const

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


export const DeliveryZoneScalarFieldEnum = {
  id: 'id',
  tenantId: 'tenantId',
  neighborhood: 'neighborhood',
  priceCents: 'priceCents',
  estimatedMinutes: 'estimatedMinutes',
  active: 'active',
  createdAt: 'createdAt',
  updatedAt: 'updatedAt'
} as const

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


export const NeighborhoodCatalogScalarFieldEnum = {
  id: 'id',
  state: 'state',
  cityCode: 'cityCode',
  city: 'city',
  name: 'name',
  normalized: 'normalized',
  source: 'source',
  updatedAt: 'updatedAt'
} as const

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


export const MediaAssetScalarFieldEnum = {
  id: 'id',
  tenantId: 'tenantId',
  kind: 'kind',
  storageKey: 'storageKey',
  url: 'url',
  mimeType: 'mimeType',
  sizeBytes: 'sizeBytes',
  originalName: 'originalName',
  createdAt: 'createdAt',
  deletedAt: 'deletedAt',
  productId: 'productId',
  serviceId: 'serviceId',
  sortOrder: 'sortOrder'
} as const

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


export const TenantUserScalarFieldEnum = {
  tenantId: 'tenantId',
  userId: 'userId',
  role: 'role',
  active: 'active'
} as const

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


export const SessionScalarFieldEnum = {
  id: 'id',
  tokenHash: 'tokenHash',
  userId: 'userId',
  expiresAt: 'expiresAt',
  createdAt: 'createdAt'
} as const

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


export const PlanScalarFieldEnum = {
  id: 'id',
  code: 'code',
  name: 'name',
  priceCents: 'priceCents',
  setupFeeCents: 'setupFeeCents',
  active: 'active'
} as const

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


export const AddonModuleScalarFieldEnum = {
  id: 'id',
  code: 'code',
  name: 'name',
  description: 'description',
  priceCents: 'priceCents',
  active: 'active',
  future: 'future',
  createdAt: 'createdAt',
  updatedAt: 'updatedAt'
} as const

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


export const MarketingPackageScalarFieldEnum = {
  id: 'id',
  title: 'title',
  category: 'category',
  description: 'description',
  salesScript: 'salesScript',
  active: 'active',
  createdAt: 'createdAt',
  updatedAt: 'updatedAt'
} as const

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


export const MarketingMaterialScalarFieldEnum = {
  id: 'id',
  packageId: 'packageId',
  title: 'title',
  fileUrl: 'fileUrl',
  storageKey: 'storageKey',
  mimeType: 'mimeType',
  sizeBytes: 'sizeBytes',
  sortOrder: 'sortOrder',
  createdAt: 'createdAt'
} as const

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


export const CampaignLeadScalarFieldEnum = {
  id: 'id',
  responsibleName: 'responsibleName',
  companyName: 'companyName',
  document: 'document',
  email: 'email',
  phone: 'phone',
  city: 'city',
  state: 'state',
  segment: 'segment',
  businessModel: 'businessModel',
  logoUrl: 'logoUrl',
  domain: 'domain',
  domainAvailable: 'domainAvailable',
  domainMode: 'domainMode',
  setupFeeDiscountCents: 'setupFeeDiscountCents',
  publicationStatus: 'publicationStatus',
  planId: 'planId',
  planName: 'planName',
  monthlyCents: 'monthlyCents',
  setupFeeCents: 'setupFeeCents',
  selectedModules: 'selectedModules',
  sellerId: 'sellerId',
  paymentUrl: 'paymentUrl',
  paymentExternalId: 'paymentExternalId',
  subscriptionExternalId: 'subscriptionExternalId',
  subscriptionStartsAt: 'subscriptionStartsAt',
  status: 'status',
  createdAt: 'createdAt',
  updatedAt: 'updatedAt'
} as const

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


export const PlanFeatureScalarFieldEnum = {
  id: 'id',
  planId: 'planId',
  key: 'key',
  enabled: 'enabled',
  limit: 'limit'
} as const

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


export const SubscriptionScalarFieldEnum = {
  id: 'id',
  tenantId: 'tenantId',
  planId: 'planId',
  status: 'status',
  priceCents: 'priceCents',
  trialEndsAt: 'trialEndsAt',
  dueAt: 'dueAt',
  startedAt: 'startedAt',
  cancelledAt: 'cancelledAt',
  provider: 'provider',
  externalCustomerId: 'externalCustomerId',
  externalSubscriptionId: 'externalSubscriptionId',
  billingType: 'billingType'
} as const

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


export const PaymentScalarFieldEnum = {
  id: 'id',
  subscriptionId: 'subscriptionId',
  provider: 'provider',
  externalId: 'externalId',
  status: 'status',
  amountCents: 'amountCents',
  netAmountCents: 'netAmountCents',
  billingType: 'billingType',
  dueAt: 'dueAt',
  paidAt: 'paidAt',
  invoiceUrl: 'invoiceUrl',
  createdAt: 'createdAt',
  updatedAt: 'updatedAt'
} as const

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


export const BillingWebhookEventScalarFieldEnum = {
  id: 'id',
  provider: 'provider',
  externalId: 'externalId',
  eventType: 'eventType',
  payload: 'payload',
  processedAt: 'processedAt'
} as const

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


export const DomainScalarFieldEnum = {
  id: 'id',
  tenantId: 'tenantId',
  hostname: 'hostname',
  primary: 'primary',
  status: 'status',
  verifiedAt: 'verifiedAt'
} as const

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


export const ThemeSettingScalarFieldEnum = {
  id: 'id',
  tenantId: 'tenantId',
  logoUrl: 'logoUrl',
  faviconUrl: 'faviconUrl',
  bannerUrl: 'bannerUrl',
  primaryColor: 'primaryColor',
  headerColor: 'headerColor',
  buttonColor: 'buttonColor',
  footerColor: 'footerColor'
} as const

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


export const SiteBannerScalarFieldEnum = {
  id: 'id',
  tenantId: 'tenantId',
  imageUrl: 'imageUrl',
  linkUrl: 'linkUrl',
  altText: 'altText',
  sortOrder: 'sortOrder',
  active: 'active',
  createdAt: 'createdAt',
  updatedAt: 'updatedAt'
} as const

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


export const ProductScalarFieldEnum = {
  id: 'id',
  tenantId: 'tenantId',
  name: 'name',
  slug: 'slug',
  shortDescription: 'shortDescription',
  description: 'description',
  sku: 'sku',
  categoryId: 'categoryId',
  priceCents: 'priceCents',
  promoPriceCents: 'promoPriceCents',
  stock: 'stock',
  trackStock: 'trackStock',
  active: 'active',
  featured: 'featured',
  seoTitle: 'seoTitle',
  metaDescription: 'metaDescription',
  createdAt: 'createdAt',
  updatedAt: 'updatedAt',
  deletedAt: 'deletedAt'
} as const

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


export const ProductCategoryScalarFieldEnum = {
  id: 'id',
  tenantId: 'tenantId',
  name: 'name',
  slug: 'slug',
  active: 'active',
  createdAt: 'createdAt',
  updatedAt: 'updatedAt',
  deletedAt: 'deletedAt'
} as const

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


export const ServiceScalarFieldEnum = {
  id: 'id',
  tenantId: 'tenantId',
  name: 'name',
  slug: 'slug',
  shortDescription: 'shortDescription',
  description: 'description',
  categoryId: 'categoryId',
  priceCents: 'priceCents',
  durationMinutes: 'durationMinutes',
  attendanceMode: 'attendanceMode',
  quoteEnabled: 'quoteEnabled',
  whatsappEnabled: 'whatsappEnabled',
  active: 'active',
  featured: 'featured',
  seoTitle: 'seoTitle',
  metaDescription: 'metaDescription',
  createdAt: 'createdAt',
  updatedAt: 'updatedAt',
  deletedAt: 'deletedAt'
} as const

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


export const ServiceCategoryScalarFieldEnum = {
  id: 'id',
  tenantId: 'tenantId',
  name: 'name',
  slug: 'slug',
  active: 'active',
  createdAt: 'createdAt',
  updatedAt: 'updatedAt',
  deletedAt: 'deletedAt'
} as const

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


export const QuoteRequestScalarFieldEnum = {
  id: 'id',
  tenantId: 'tenantId',
  name: 'name',
  email: 'email',
  message: 'message',
  phone: 'phone',
  serviceId: 'serviceId',
  status: 'status',
  updatedAt: 'updatedAt',
  createdAt: 'createdAt'
} as const

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


export const OrderScalarFieldEnum = {
  id: 'id',
  tenantId: 'tenantId',
  customerName: 'customerName',
  email: 'email',
  phone: 'phone',
  status: 'status',
  totalCents: 'totalCents',
  notes: 'notes',
  createdAt: 'createdAt',
  updatedAt: 'updatedAt'
} as const

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


export const OrderItemScalarFieldEnum = {
  id: 'id',
  orderId: 'orderId',
  productId: 'productId',
  name: 'name',
  unitPriceCents: 'unitPriceCents',
  quantity: 'quantity'
} as const

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


export const AuditLogScalarFieldEnum = {
  id: 'id',
  tenantId: 'tenantId',
  actorId: 'actorId',
  action: 'action',
  entity: 'entity',
  entityId: 'entityId',
  metadata: 'metadata',
  ip: 'ip',
  createdAt: 'createdAt'
} as const

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


export const BlogPostScalarFieldEnum = {
  id: 'id',
  title: 'title',
  slug: 'slug',
  excerpt: 'excerpt',
  content: 'content',
  category: 'category',
  coverImageUrl: 'coverImageUrl',
  seoTitle: 'seoTitle',
  metaDescription: 'metaDescription',
  published: 'published',
  publishedAt: 'publishedAt',
  authorId: 'authorId',
  tenantId: 'tenantId',
  createdAt: 'createdAt',
  updatedAt: 'updatedAt'
} as const

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


export const SortOrder = {
  asc: 'asc',
  desc: 'desc'
} as const

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


export const JsonNullValueInput = {
  JsonNull: JsonNull
} as const

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


export const NullableJsonNullValueInput = {
  DbNull: DbNull,
  JsonNull: JsonNull
} as const

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


export const QueryMode = {
  default: 'default',
  insensitive: 'insensitive'
} as const

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


export const NullsOrder = {
  first: 'first',
  last: 'last'
} as const

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


export const JsonNullValueFilter = {
  DbNull: DbNull,
  JsonNull: JsonNull,
  AnyNull: AnyNull
} as const

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 'Boolean'
 */
export type BooleanFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Boolean'>
    


/**
 * Reference to a field of type 'PlatformRole'
 */
export type EnumPlatformRoleFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'PlatformRole'>
    


/**
 * Reference to a field of type 'PlatformRole[]'
 */
export type ListEnumPlatformRoleFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'PlatformRole[]'>
    


/**
 * 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 '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 'BusinessModel'
 */
export type EnumBusinessModelFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'BusinessModel'>
    


/**
 * Reference to a field of type 'BusinessModel[]'
 */
export type ListEnumBusinessModelFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'BusinessModel[]'>
    


/**
 * Reference to a field of type 'TenantStatus'
 */
export type EnumTenantStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'TenantStatus'>
    


/**
 * Reference to a field of type 'TenantStatus[]'
 */
export type ListEnumTenantStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'TenantStatus[]'>
    


/**
 * Reference to a field of type 'MembershipRole'
 */
export type EnumMembershipRoleFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'MembershipRole'>
    


/**
 * Reference to a field of type 'MembershipRole[]'
 */
export type ListEnumMembershipRoleFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'MembershipRole[]'>
    


/**
 * 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 'SubscriptionStatus'
 */
export type EnumSubscriptionStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'SubscriptionStatus'>
    


/**
 * Reference to a field of type 'SubscriptionStatus[]'
 */
export type ListEnumSubscriptionStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'SubscriptionStatus[]'>
    


/**
 * Reference to a field of type 'BillingProvider'
 */
export type EnumBillingProviderFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'BillingProvider'>
    


/**
 * Reference to a field of type 'BillingProvider[]'
 */
export type ListEnumBillingProviderFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'BillingProvider[]'>
    


/**
 * Reference to a field of type 'PaymentStatus'
 */
export type EnumPaymentStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'PaymentStatus'>
    


/**
 * Reference to a field of type 'PaymentStatus[]'
 */
export type ListEnumPaymentStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'PaymentStatus[]'>
    


/**
 * Reference to a field of type 'DomainStatus'
 */
export type EnumDomainStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DomainStatus'>
    


/**
 * Reference to a field of type 'DomainStatus[]'
 */
export type ListEnumDomainStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DomainStatus[]'>
    


/**
 * Reference to a field of type 'QuoteStatus'
 */
export type EnumQuoteStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'QuoteStatus'>
    


/**
 * Reference to a field of type 'QuoteStatus[]'
 */
export type ListEnumQuoteStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'QuoteStatus[]'>
    


/**
 * Reference to a field of type 'OrderStatus'
 */
export type EnumOrderStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'OrderStatus'>
    


/**
 * Reference to a field of type 'OrderStatus[]'
 */
export type ListEnumOrderStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'OrderStatus[]'>
    


/**
 * 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[]'>
    

/**
 * Batch Payload for updateMany & deleteMany & createMany
 */
export type BatchPayload = {
  count: number
}

export const defineExtension = runtime.Extensions.defineExtension as unknown as runtime.Types.Extensions.ExtendsHook<"define", TypeMapCb, runtime.Types.Extensions.DefaultArgs>
export type DefaultPrismaClient = PrismaClient
export type ErrorFormat = 'pretty' | 'colorless' | 'minimal'
/**
 * Options common to all variants of `PrismaClientOptions`, regardless of whether you connect to your database through a driver adapter or through Prisma Accelerate.
 */
export interface PrismaClientBaseOptions {
  /**
   * @default "colorless"
   */
  errorFormat?: ErrorFormat
  /**
   * @example
   * ```
   * // Shorthand for `emit: 'stdout'`
   * log: ['query', 'info', 'warn', 'error']
   * 
   * // Emit as events only
   * log: [
   *   { emit: 'event', level: 'query' },
   *   { emit: 'event', level: 'info' },
   *   { emit: 'event', level: 'warn' }
   *   { emit: 'event', level: 'error' }
   * ]
   * 
   * / Emit as events and log to stdout
   * og: [
   *  { emit: 'stdout', level: 'query' },
   *  { emit: 'stdout', level: 'info' },
   *  { emit: 'stdout', level: 'warn' }
   *  { emit: 'stdout', level: 'error' }
   * 
   * ```
   * Read more in our [docs](https://pris.ly/d/logging).
   */
  log?: (LogLevel | LogDefinition)[]
  /**
   * The default values for transactionOptions
   * maxWait ?= 2000
   * timeout ?= 5000
   */
  transactionOptions?: {
    maxWait?: number
    timeout?: number
    isolationLevel?: TransactionIsolationLevel
  }
  /**
   * Global configuration for omitting model fields by default.
   * 
   * @example
   * ```
   * const prisma = new PrismaClient({
   *   omit: {
   *     user: {
   *       password: true
   *     }
   *   }
   * })
   * ```
   */
  omit?: GlobalOmitConfig
  /**
   * SQL commenter plugins that add metadata to SQL queries as comments.
   * Comments follow the sqlcommenter format: https://google.github.io/sqlcommenter/
   * 
   * @example
   * ```
   * const prisma = new PrismaClient({
   *   adapter,
   *   comments: [
   *     traceContext(),
   *     queryInsights(),
   *   ],
   * })
   * ```
   */
  comments?: runtime.SqlCommenterPlugin[]
  /**
   * Optional maximum size for the query plan cache. If not provided, a default size will be used.
   * A value of `0` can be used to disable the cache entirely. A higher cache size can improve
   * performance for applications that execute a large number of unique queries, while a smaller
   * cache size can reduce memory usage.
   * 
   * @example
   * ```
   * const prisma = new PrismaClient({
   *   adapter,
   *   queryPlanCacheMaxSize: 100,
   * })
   * ```
   */
  queryPlanCacheMaxSize?: number
}

/**
 * `PrismaClient` options for connecting to your database through Prisma Accelerate instead of a driver adapter.
 * 
 * Learn more: https://pris.ly/d/accelerate
 */
export interface PrismaClientOptionsWithAccelerateUrl extends PrismaClientBaseOptions {
  /**
   * The Prisma Accelerate connection URL. Use this option to connect to your database through Prisma Accelerate instead of using a driver adapter to connect directly.
   * 
   * Learn more: https://pris.ly/d/accelerate
   */
  accelerateUrl: string
  adapter?: never
}

/**
 * `PrismaClient` options for connecting to your database through a driver adapter. This is the common case in Prisma 7.
 * 
 * Learn more: https://pris.ly/d/driver-adapters
 */
export interface PrismaClientOptionsWithAdapter extends PrismaClientBaseOptions {
  /**
   * A driver adapter that PrismaClient uses to connect to your database, such as the ones provided by `@prisma/adapter-pg`, `@prisma/adapter-libsql`, `@prisma/adapter-planetscale`, etc.
   * 
   * A driver adapter is **required** unless you connect to your database through Prisma Accelerate (in which case use `accelerateUrl` instead).
   * 
   * Learn more: https://pris.ly/d/driver-adapters
   * 
   * @example
   * ```ts
   * import { PrismaPg } from '@prisma/adapter-pg'
   * import { PrismaClient } from './generated/prisma/client'
   * 
   * const adapter = new PrismaPg({ connectionString: process.env.DATABASE_URL })
   * const prisma = new PrismaClient({ adapter })
   * ```
   */
  adapter: runtime.SqlDriverAdapterFactory
  accelerateUrl?: never
}

/**
 * Options passed to the `PrismaClient` constructor.
 * 
 * A driver adapter (or, alternatively, a Prisma Accelerate URL) is **required**. See {@link PrismaClientOptionsWithAdapter} and {@link PrismaClientOptionsWithAccelerateUrl} for the two variants. All other properties live in {@link PrismaClientBaseOptions} and are optional.
 * 
 * Learn more about driver adapters: https://pris.ly/d/driver-adapters
 */
export type PrismaClientOptions = PrismaClientOptionsWithAccelerateUrl | PrismaClientOptionsWithAdapter
export type GlobalOmitConfig = {
  user?: Prisma.UserOmit
  tenant?: Prisma.TenantOmit
  deliveryZone?: Prisma.DeliveryZoneOmit
  neighborhoodCatalog?: Prisma.NeighborhoodCatalogOmit
  mediaAsset?: Prisma.MediaAssetOmit
  tenantUser?: Prisma.TenantUserOmit
  session?: Prisma.SessionOmit
  plan?: Prisma.PlanOmit
  addonModule?: Prisma.AddonModuleOmit
  marketingPackage?: Prisma.MarketingPackageOmit
  marketingMaterial?: Prisma.MarketingMaterialOmit
  campaignLead?: Prisma.CampaignLeadOmit
  planFeature?: Prisma.PlanFeatureOmit
  subscription?: Prisma.SubscriptionOmit
  payment?: Prisma.PaymentOmit
  billingWebhookEvent?: Prisma.BillingWebhookEventOmit
  domain?: Prisma.DomainOmit
  themeSetting?: Prisma.ThemeSettingOmit
  siteBanner?: Prisma.SiteBannerOmit
  product?: Prisma.ProductOmit
  productCategory?: Prisma.ProductCategoryOmit
  service?: Prisma.ServiceOmit
  serviceCategory?: Prisma.ServiceCategoryOmit
  quoteRequest?: Prisma.QuoteRequestOmit
  order?: Prisma.OrderOmit
  orderItem?: Prisma.OrderItemOmit
  auditLog?: Prisma.AuditLogOmit
  blogPost?: Prisma.BlogPostOmit
}

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

export type CheckIsLogLevel<T> = T extends LogLevel ? T : never;

export type GetLogType<T> = CheckIsLogLevel<
  T extends LogDefinition ? T['level'] : T
>;

export type GetEvents<T extends any[]> = T extends Array<LogLevel | LogDefinition>
  ? GetLogType<T[number]>
  : 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'

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

