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

/**
 * Model Tenant
 * 
 */
export type TenantModel = runtime.Types.Result.DefaultSelection<Prisma.$TenantPayload>

export type AggregateTenant = {
  _count: TenantCountAggregateOutputType | null
  _avg: TenantAvgAggregateOutputType | null
  _sum: TenantSumAggregateOutputType | null
  _min: TenantMinAggregateOutputType | null
  _max: TenantMaxAggregateOutputType | null
}

export type TenantAvgAggregateOutputType = {
  deliveryPriceCents: number | null
}

export type TenantSumAggregateOutputType = {
  deliveryPriceCents: number | null
}

export type TenantMinAggregateOutputType = {
  id: string | null
  name: string | null
  legalDocument: string | null
  slug: string | null
  email: string | null
  phone: string | null
  whatsapp: string | null
  city: string | null
  state: string | null
  segment: string | null
  description: string | null
  addressLine: string | null
  postalCode: string | null
  instagramUrl: string | null
  facebookUrl: string | null
  businessModel: $Enums.BusinessModel | null
  status: $Enums.TenantStatus | null
  directoryOptIn: boolean | null
  createdAt: Date | null
  updatedAt: Date | null
  deletedAt: Date | null
  deliveryEnabled: boolean | null
  deliveryPriceCents: number | null
  showGoogleMap: boolean | null
  feature1Title: string | null
  feature1Description: string | null
  feature2Title: string | null
  feature2Description: string | null
  feature3Title: string | null
  feature3Description: string | null
}

export type TenantMaxAggregateOutputType = {
  id: string | null
  name: string | null
  legalDocument: string | null
  slug: string | null
  email: string | null
  phone: string | null
  whatsapp: string | null
  city: string | null
  state: string | null
  segment: string | null
  description: string | null
  addressLine: string | null
  postalCode: string | null
  instagramUrl: string | null
  facebookUrl: string | null
  businessModel: $Enums.BusinessModel | null
  status: $Enums.TenantStatus | null
  directoryOptIn: boolean | null
  createdAt: Date | null
  updatedAt: Date | null
  deletedAt: Date | null
  deliveryEnabled: boolean | null
  deliveryPriceCents: number | null
  showGoogleMap: boolean | null
  feature1Title: string | null
  feature1Description: string | null
  feature2Title: string | null
  feature2Description: string | null
  feature3Title: string | null
  feature3Description: string | null
}

export type TenantCountAggregateOutputType = {
  id: number
  name: number
  legalDocument: number
  slug: number
  email: number
  phone: number
  whatsapp: number
  city: number
  state: number
  segment: number
  description: number
  addressLine: number
  postalCode: number
  instagramUrl: number
  facebookUrl: number
  businessModel: number
  status: number
  directoryOptIn: number
  createdAt: number
  updatedAt: number
  deletedAt: number
  deliveryEnabled: number
  deliveryPriceCents: number
  showGoogleMap: number
  feature1Title: number
  feature1Description: number
  feature2Title: number
  feature2Description: number
  feature3Title: number
  feature3Description: number
  _all: number
}


export type TenantAvgAggregateInputType = {
  deliveryPriceCents?: true
}

export type TenantSumAggregateInputType = {
  deliveryPriceCents?: true
}

export type TenantMinAggregateInputType = {
  id?: true
  name?: true
  legalDocument?: true
  slug?: true
  email?: true
  phone?: true
  whatsapp?: true
  city?: true
  state?: true
  segment?: true
  description?: true
  addressLine?: true
  postalCode?: true
  instagramUrl?: true
  facebookUrl?: true
  businessModel?: true
  status?: true
  directoryOptIn?: true
  createdAt?: true
  updatedAt?: true
  deletedAt?: true
  deliveryEnabled?: true
  deliveryPriceCents?: true
  showGoogleMap?: true
  feature1Title?: true
  feature1Description?: true
  feature2Title?: true
  feature2Description?: true
  feature3Title?: true
  feature3Description?: true
}

export type TenantMaxAggregateInputType = {
  id?: true
  name?: true
  legalDocument?: true
  slug?: true
  email?: true
  phone?: true
  whatsapp?: true
  city?: true
  state?: true
  segment?: true
  description?: true
  addressLine?: true
  postalCode?: true
  instagramUrl?: true
  facebookUrl?: true
  businessModel?: true
  status?: true
  directoryOptIn?: true
  createdAt?: true
  updatedAt?: true
  deletedAt?: true
  deliveryEnabled?: true
  deliveryPriceCents?: true
  showGoogleMap?: true
  feature1Title?: true
  feature1Description?: true
  feature2Title?: true
  feature2Description?: true
  feature3Title?: true
  feature3Description?: true
}

export type TenantCountAggregateInputType = {
  id?: true
  name?: true
  legalDocument?: true
  slug?: true
  email?: true
  phone?: true
  whatsapp?: true
  city?: true
  state?: true
  segment?: true
  description?: true
  addressLine?: true
  postalCode?: true
  instagramUrl?: true
  facebookUrl?: true
  businessModel?: true
  status?: true
  directoryOptIn?: true
  createdAt?: true
  updatedAt?: true
  deletedAt?: true
  deliveryEnabled?: true
  deliveryPriceCents?: true
  showGoogleMap?: true
  feature1Title?: true
  feature1Description?: true
  feature2Title?: true
  feature2Description?: true
  feature3Title?: true
  feature3Description?: true
  _all?: true
}

export type TenantAggregateArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Filter which Tenant to aggregate.
   */
  where?: Prisma.TenantWhereInput
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
   * 
   * Determine the order of Tenants to fetch.
   */
  orderBy?: Prisma.TenantOrderByWithRelationInput | Prisma.TenantOrderByWithRelationInput[]
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
   * 
   * Sets the start position
   */
  cursor?: Prisma.TenantWhereUniqueInput
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
   * 
   * Take `±n` Tenants from the position of the cursor.
   */
  take?: number
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
   * 
   * Skip the first `n` Tenants.
   */
  skip?: number
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
   * 
   * Count returned Tenants
  **/
  _count?: true | TenantCountAggregateInputType
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
   * 
   * Select which fields to average
  **/
  _avg?: TenantAvgAggregateInputType
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
   * 
   * Select which fields to sum
  **/
  _sum?: TenantSumAggregateInputType
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
   * 
   * Select which fields to find the minimum value
  **/
  _min?: TenantMinAggregateInputType
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
   * 
   * Select which fields to find the maximum value
  **/
  _max?: TenantMaxAggregateInputType
}

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




export type TenantGroupByArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  where?: Prisma.TenantWhereInput
  orderBy?: Prisma.TenantOrderByWithAggregationInput | Prisma.TenantOrderByWithAggregationInput[]
  by: Prisma.TenantScalarFieldEnum[] | Prisma.TenantScalarFieldEnum
  having?: Prisma.TenantScalarWhereWithAggregatesInput
  take?: number
  skip?: number
  _count?: TenantCountAggregateInputType | true
  _avg?: TenantAvgAggregateInputType
  _sum?: TenantSumAggregateInputType
  _min?: TenantMinAggregateInputType
  _max?: TenantMaxAggregateInputType
}

export type TenantGroupByOutputType = {
  id: string
  name: string
  legalDocument: string
  slug: string
  email: string
  phone: string
  whatsapp: string | null
  city: string
  state: string
  segment: string
  description: string | null
  addressLine: string | null
  postalCode: string | null
  instagramUrl: string | null
  facebookUrl: string | null
  businessModel: $Enums.BusinessModel
  status: $Enums.TenantStatus
  directoryOptIn: boolean
  createdAt: Date
  updatedAt: Date
  deletedAt: Date | null
  deliveryEnabled: boolean
  deliveryPriceCents: number
  showGoogleMap: boolean
  feature1Title: string | null
  feature1Description: string | null
  feature2Title: string | null
  feature2Description: string | null
  feature3Title: string | null
  feature3Description: string | null
  _count: TenantCountAggregateOutputType | null
  _avg: TenantAvgAggregateOutputType | null
  _sum: TenantSumAggregateOutputType | null
  _min: TenantMinAggregateOutputType | null
  _max: TenantMaxAggregateOutputType | null
}

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



export type TenantWhereInput = {
  AND?: Prisma.TenantWhereInput | Prisma.TenantWhereInput[]
  OR?: Prisma.TenantWhereInput[]
  NOT?: Prisma.TenantWhereInput | Prisma.TenantWhereInput[]
  id?: Prisma.StringFilter<"Tenant"> | string
  name?: Prisma.StringFilter<"Tenant"> | string
  legalDocument?: Prisma.StringFilter<"Tenant"> | string
  slug?: Prisma.StringFilter<"Tenant"> | string
  email?: Prisma.StringFilter<"Tenant"> | string
  phone?: Prisma.StringFilter<"Tenant"> | string
  whatsapp?: Prisma.StringNullableFilter<"Tenant"> | string | null
  city?: Prisma.StringFilter<"Tenant"> | string
  state?: Prisma.StringFilter<"Tenant"> | string
  segment?: Prisma.StringFilter<"Tenant"> | string
  description?: Prisma.StringNullableFilter<"Tenant"> | string | null
  addressLine?: Prisma.StringNullableFilter<"Tenant"> | string | null
  postalCode?: Prisma.StringNullableFilter<"Tenant"> | string | null
  instagramUrl?: Prisma.StringNullableFilter<"Tenant"> | string | null
  facebookUrl?: Prisma.StringNullableFilter<"Tenant"> | string | null
  businessModel?: Prisma.EnumBusinessModelFilter<"Tenant"> | $Enums.BusinessModel
  status?: Prisma.EnumTenantStatusFilter<"Tenant"> | $Enums.TenantStatus
  directoryOptIn?: Prisma.BoolFilter<"Tenant"> | boolean
  createdAt?: Prisma.DateTimeFilter<"Tenant"> | Date | string
  updatedAt?: Prisma.DateTimeFilter<"Tenant"> | Date | string
  deletedAt?: Prisma.DateTimeNullableFilter<"Tenant"> | Date | string | null
  deliveryEnabled?: Prisma.BoolFilter<"Tenant"> | boolean
  deliveryPriceCents?: Prisma.IntFilter<"Tenant"> | number
  showGoogleMap?: Prisma.BoolFilter<"Tenant"> | boolean
  feature1Title?: Prisma.StringNullableFilter<"Tenant"> | string | null
  feature1Description?: Prisma.StringNullableFilter<"Tenant"> | string | null
  feature2Title?: Prisma.StringNullableFilter<"Tenant"> | string | null
  feature2Description?: Prisma.StringNullableFilter<"Tenant"> | string | null
  feature3Title?: Prisma.StringNullableFilter<"Tenant"> | string | null
  feature3Description?: Prisma.StringNullableFilter<"Tenant"> | string | null
  users?: Prisma.TenantUserListRelationFilter
  domains?: Prisma.DomainListRelationFilter
  theme?: Prisma.XOR<Prisma.ThemeSettingNullableScalarRelationFilter, Prisma.ThemeSettingWhereInput> | null
  subscription?: Prisma.XOR<Prisma.SubscriptionNullableScalarRelationFilter, Prisma.SubscriptionWhereInput> | null
  auditLogs?: Prisma.AuditLogListRelationFilter
  products?: Prisma.ProductListRelationFilter
  services?: Prisma.ServiceListRelationFilter
  quoteRequests?: Prisma.QuoteRequestListRelationFilter
  productCategories?: Prisma.ProductCategoryListRelationFilter
  serviceCategories?: Prisma.ServiceCategoryListRelationFilter
  mediaAssets?: Prisma.MediaAssetListRelationFilter
  orders?: Prisma.OrderListRelationFilter
  deliveryZones?: Prisma.DeliveryZoneListRelationFilter
  blogPosts?: Prisma.BlogPostListRelationFilter
  siteBanners?: Prisma.SiteBannerListRelationFilter
}

export type TenantOrderByWithRelationInput = {
  id?: Prisma.SortOrder
  name?: Prisma.SortOrder
  legalDocument?: Prisma.SortOrder
  slug?: Prisma.SortOrder
  email?: Prisma.SortOrder
  phone?: Prisma.SortOrder
  whatsapp?: Prisma.SortOrderInput | Prisma.SortOrder
  city?: Prisma.SortOrder
  state?: Prisma.SortOrder
  segment?: Prisma.SortOrder
  description?: Prisma.SortOrderInput | Prisma.SortOrder
  addressLine?: Prisma.SortOrderInput | Prisma.SortOrder
  postalCode?: Prisma.SortOrderInput | Prisma.SortOrder
  instagramUrl?: Prisma.SortOrderInput | Prisma.SortOrder
  facebookUrl?: Prisma.SortOrderInput | Prisma.SortOrder
  businessModel?: Prisma.SortOrder
  status?: Prisma.SortOrder
  directoryOptIn?: Prisma.SortOrder
  createdAt?: Prisma.SortOrder
  updatedAt?: Prisma.SortOrder
  deletedAt?: Prisma.SortOrderInput | Prisma.SortOrder
  deliveryEnabled?: Prisma.SortOrder
  deliveryPriceCents?: Prisma.SortOrder
  showGoogleMap?: Prisma.SortOrder
  feature1Title?: Prisma.SortOrderInput | Prisma.SortOrder
  feature1Description?: Prisma.SortOrderInput | Prisma.SortOrder
  feature2Title?: Prisma.SortOrderInput | Prisma.SortOrder
  feature2Description?: Prisma.SortOrderInput | Prisma.SortOrder
  feature3Title?: Prisma.SortOrderInput | Prisma.SortOrder
  feature3Description?: Prisma.SortOrderInput | Prisma.SortOrder
  users?: Prisma.TenantUserOrderByRelationAggregateInput
  domains?: Prisma.DomainOrderByRelationAggregateInput
  theme?: Prisma.ThemeSettingOrderByWithRelationInput
  subscription?: Prisma.SubscriptionOrderByWithRelationInput
  auditLogs?: Prisma.AuditLogOrderByRelationAggregateInput
  products?: Prisma.ProductOrderByRelationAggregateInput
  services?: Prisma.ServiceOrderByRelationAggregateInput
  quoteRequests?: Prisma.QuoteRequestOrderByRelationAggregateInput
  productCategories?: Prisma.ProductCategoryOrderByRelationAggregateInput
  serviceCategories?: Prisma.ServiceCategoryOrderByRelationAggregateInput
  mediaAssets?: Prisma.MediaAssetOrderByRelationAggregateInput
  orders?: Prisma.OrderOrderByRelationAggregateInput
  deliveryZones?: Prisma.DeliveryZoneOrderByRelationAggregateInput
  blogPosts?: Prisma.BlogPostOrderByRelationAggregateInput
  siteBanners?: Prisma.SiteBannerOrderByRelationAggregateInput
}

export type TenantWhereUniqueInput = Prisma.AtLeast<{
  id?: string
  legalDocument?: string
  slug?: string
  AND?: Prisma.TenantWhereInput | Prisma.TenantWhereInput[]
  OR?: Prisma.TenantWhereInput[]
  NOT?: Prisma.TenantWhereInput | Prisma.TenantWhereInput[]
  name?: Prisma.StringFilter<"Tenant"> | string
  email?: Prisma.StringFilter<"Tenant"> | string
  phone?: Prisma.StringFilter<"Tenant"> | string
  whatsapp?: Prisma.StringNullableFilter<"Tenant"> | string | null
  city?: Prisma.StringFilter<"Tenant"> | string
  state?: Prisma.StringFilter<"Tenant"> | string
  segment?: Prisma.StringFilter<"Tenant"> | string
  description?: Prisma.StringNullableFilter<"Tenant"> | string | null
  addressLine?: Prisma.StringNullableFilter<"Tenant"> | string | null
  postalCode?: Prisma.StringNullableFilter<"Tenant"> | string | null
  instagramUrl?: Prisma.StringNullableFilter<"Tenant"> | string | null
  facebookUrl?: Prisma.StringNullableFilter<"Tenant"> | string | null
  businessModel?: Prisma.EnumBusinessModelFilter<"Tenant"> | $Enums.BusinessModel
  status?: Prisma.EnumTenantStatusFilter<"Tenant"> | $Enums.TenantStatus
  directoryOptIn?: Prisma.BoolFilter<"Tenant"> | boolean
  createdAt?: Prisma.DateTimeFilter<"Tenant"> | Date | string
  updatedAt?: Prisma.DateTimeFilter<"Tenant"> | Date | string
  deletedAt?: Prisma.DateTimeNullableFilter<"Tenant"> | Date | string | null
  deliveryEnabled?: Prisma.BoolFilter<"Tenant"> | boolean
  deliveryPriceCents?: Prisma.IntFilter<"Tenant"> | number
  showGoogleMap?: Prisma.BoolFilter<"Tenant"> | boolean
  feature1Title?: Prisma.StringNullableFilter<"Tenant"> | string | null
  feature1Description?: Prisma.StringNullableFilter<"Tenant"> | string | null
  feature2Title?: Prisma.StringNullableFilter<"Tenant"> | string | null
  feature2Description?: Prisma.StringNullableFilter<"Tenant"> | string | null
  feature3Title?: Prisma.StringNullableFilter<"Tenant"> | string | null
  feature3Description?: Prisma.StringNullableFilter<"Tenant"> | string | null
  users?: Prisma.TenantUserListRelationFilter
  domains?: Prisma.DomainListRelationFilter
  theme?: Prisma.XOR<Prisma.ThemeSettingNullableScalarRelationFilter, Prisma.ThemeSettingWhereInput> | null
  subscription?: Prisma.XOR<Prisma.SubscriptionNullableScalarRelationFilter, Prisma.SubscriptionWhereInput> | null
  auditLogs?: Prisma.AuditLogListRelationFilter
  products?: Prisma.ProductListRelationFilter
  services?: Prisma.ServiceListRelationFilter
  quoteRequests?: Prisma.QuoteRequestListRelationFilter
  productCategories?: Prisma.ProductCategoryListRelationFilter
  serviceCategories?: Prisma.ServiceCategoryListRelationFilter
  mediaAssets?: Prisma.MediaAssetListRelationFilter
  orders?: Prisma.OrderListRelationFilter
  deliveryZones?: Prisma.DeliveryZoneListRelationFilter
  blogPosts?: Prisma.BlogPostListRelationFilter
  siteBanners?: Prisma.SiteBannerListRelationFilter
}, "id" | "legalDocument" | "slug">

export type TenantOrderByWithAggregationInput = {
  id?: Prisma.SortOrder
  name?: Prisma.SortOrder
  legalDocument?: Prisma.SortOrder
  slug?: Prisma.SortOrder
  email?: Prisma.SortOrder
  phone?: Prisma.SortOrder
  whatsapp?: Prisma.SortOrderInput | Prisma.SortOrder
  city?: Prisma.SortOrder
  state?: Prisma.SortOrder
  segment?: Prisma.SortOrder
  description?: Prisma.SortOrderInput | Prisma.SortOrder
  addressLine?: Prisma.SortOrderInput | Prisma.SortOrder
  postalCode?: Prisma.SortOrderInput | Prisma.SortOrder
  instagramUrl?: Prisma.SortOrderInput | Prisma.SortOrder
  facebookUrl?: Prisma.SortOrderInput | Prisma.SortOrder
  businessModel?: Prisma.SortOrder
  status?: Prisma.SortOrder
  directoryOptIn?: Prisma.SortOrder
  createdAt?: Prisma.SortOrder
  updatedAt?: Prisma.SortOrder
  deletedAt?: Prisma.SortOrderInput | Prisma.SortOrder
  deliveryEnabled?: Prisma.SortOrder
  deliveryPriceCents?: Prisma.SortOrder
  showGoogleMap?: Prisma.SortOrder
  feature1Title?: Prisma.SortOrderInput | Prisma.SortOrder
  feature1Description?: Prisma.SortOrderInput | Prisma.SortOrder
  feature2Title?: Prisma.SortOrderInput | Prisma.SortOrder
  feature2Description?: Prisma.SortOrderInput | Prisma.SortOrder
  feature3Title?: Prisma.SortOrderInput | Prisma.SortOrder
  feature3Description?: Prisma.SortOrderInput | Prisma.SortOrder
  _count?: Prisma.TenantCountOrderByAggregateInput
  _avg?: Prisma.TenantAvgOrderByAggregateInput
  _max?: Prisma.TenantMaxOrderByAggregateInput
  _min?: Prisma.TenantMinOrderByAggregateInput
  _sum?: Prisma.TenantSumOrderByAggregateInput
}

export type TenantScalarWhereWithAggregatesInput = {
  AND?: Prisma.TenantScalarWhereWithAggregatesInput | Prisma.TenantScalarWhereWithAggregatesInput[]
  OR?: Prisma.TenantScalarWhereWithAggregatesInput[]
  NOT?: Prisma.TenantScalarWhereWithAggregatesInput | Prisma.TenantScalarWhereWithAggregatesInput[]
  id?: Prisma.StringWithAggregatesFilter<"Tenant"> | string
  name?: Prisma.StringWithAggregatesFilter<"Tenant"> | string
  legalDocument?: Prisma.StringWithAggregatesFilter<"Tenant"> | string
  slug?: Prisma.StringWithAggregatesFilter<"Tenant"> | string
  email?: Prisma.StringWithAggregatesFilter<"Tenant"> | string
  phone?: Prisma.StringWithAggregatesFilter<"Tenant"> | string
  whatsapp?: Prisma.StringNullableWithAggregatesFilter<"Tenant"> | string | null
  city?: Prisma.StringWithAggregatesFilter<"Tenant"> | string
  state?: Prisma.StringWithAggregatesFilter<"Tenant"> | string
  segment?: Prisma.StringWithAggregatesFilter<"Tenant"> | string
  description?: Prisma.StringNullableWithAggregatesFilter<"Tenant"> | string | null
  addressLine?: Prisma.StringNullableWithAggregatesFilter<"Tenant"> | string | null
  postalCode?: Prisma.StringNullableWithAggregatesFilter<"Tenant"> | string | null
  instagramUrl?: Prisma.StringNullableWithAggregatesFilter<"Tenant"> | string | null
  facebookUrl?: Prisma.StringNullableWithAggregatesFilter<"Tenant"> | string | null
  businessModel?: Prisma.EnumBusinessModelWithAggregatesFilter<"Tenant"> | $Enums.BusinessModel
  status?: Prisma.EnumTenantStatusWithAggregatesFilter<"Tenant"> | $Enums.TenantStatus
  directoryOptIn?: Prisma.BoolWithAggregatesFilter<"Tenant"> | boolean
  createdAt?: Prisma.DateTimeWithAggregatesFilter<"Tenant"> | Date | string
  updatedAt?: Prisma.DateTimeWithAggregatesFilter<"Tenant"> | Date | string
  deletedAt?: Prisma.DateTimeNullableWithAggregatesFilter<"Tenant"> | Date | string | null
  deliveryEnabled?: Prisma.BoolWithAggregatesFilter<"Tenant"> | boolean
  deliveryPriceCents?: Prisma.IntWithAggregatesFilter<"Tenant"> | number
  showGoogleMap?: Prisma.BoolWithAggregatesFilter<"Tenant"> | boolean
  feature1Title?: Prisma.StringNullableWithAggregatesFilter<"Tenant"> | string | null
  feature1Description?: Prisma.StringNullableWithAggregatesFilter<"Tenant"> | string | null
  feature2Title?: Prisma.StringNullableWithAggregatesFilter<"Tenant"> | string | null
  feature2Description?: Prisma.StringNullableWithAggregatesFilter<"Tenant"> | string | null
  feature3Title?: Prisma.StringNullableWithAggregatesFilter<"Tenant"> | string | null
  feature3Description?: Prisma.StringNullableWithAggregatesFilter<"Tenant"> | string | null
}

export type TenantCreateInput = {
  id?: string
  name: string
  legalDocument: string
  slug: string
  email: string
  phone: string
  whatsapp?: string | null
  city: string
  state: string
  segment: string
  description?: string | null
  addressLine?: string | null
  postalCode?: string | null
  instagramUrl?: string | null
  facebookUrl?: string | null
  businessModel: $Enums.BusinessModel
  status?: $Enums.TenantStatus
  directoryOptIn?: boolean
  createdAt?: Date | string
  updatedAt?: Date | string
  deletedAt?: Date | string | null
  deliveryEnabled?: boolean
  deliveryPriceCents?: number
  showGoogleMap?: boolean
  feature1Title?: string | null
  feature1Description?: string | null
  feature2Title?: string | null
  feature2Description?: string | null
  feature3Title?: string | null
  feature3Description?: string | null
  users?: Prisma.TenantUserCreateNestedManyWithoutTenantInput
  domains?: Prisma.DomainCreateNestedManyWithoutTenantInput
  theme?: Prisma.ThemeSettingCreateNestedOneWithoutTenantInput
  subscription?: Prisma.SubscriptionCreateNestedOneWithoutTenantInput
  auditLogs?: Prisma.AuditLogCreateNestedManyWithoutTenantInput
  products?: Prisma.ProductCreateNestedManyWithoutTenantInput
  services?: Prisma.ServiceCreateNestedManyWithoutTenantInput
  quoteRequests?: Prisma.QuoteRequestCreateNestedManyWithoutTenantInput
  productCategories?: Prisma.ProductCategoryCreateNestedManyWithoutTenantInput
  serviceCategories?: Prisma.ServiceCategoryCreateNestedManyWithoutTenantInput
  mediaAssets?: Prisma.MediaAssetCreateNestedManyWithoutTenantInput
  orders?: Prisma.OrderCreateNestedManyWithoutTenantInput
  deliveryZones?: Prisma.DeliveryZoneCreateNestedManyWithoutTenantInput
  blogPosts?: Prisma.BlogPostCreateNestedManyWithoutTenantInput
  siteBanners?: Prisma.SiteBannerCreateNestedManyWithoutTenantInput
}

export type TenantUncheckedCreateInput = {
  id?: string
  name: string
  legalDocument: string
  slug: string
  email: string
  phone: string
  whatsapp?: string | null
  city: string
  state: string
  segment: string
  description?: string | null
  addressLine?: string | null
  postalCode?: string | null
  instagramUrl?: string | null
  facebookUrl?: string | null
  businessModel: $Enums.BusinessModel
  status?: $Enums.TenantStatus
  directoryOptIn?: boolean
  createdAt?: Date | string
  updatedAt?: Date | string
  deletedAt?: Date | string | null
  deliveryEnabled?: boolean
  deliveryPriceCents?: number
  showGoogleMap?: boolean
  feature1Title?: string | null
  feature1Description?: string | null
  feature2Title?: string | null
  feature2Description?: string | null
  feature3Title?: string | null
  feature3Description?: string | null
  users?: Prisma.TenantUserUncheckedCreateNestedManyWithoutTenantInput
  domains?: Prisma.DomainUncheckedCreateNestedManyWithoutTenantInput
  theme?: Prisma.ThemeSettingUncheckedCreateNestedOneWithoutTenantInput
  subscription?: Prisma.SubscriptionUncheckedCreateNestedOneWithoutTenantInput
  auditLogs?: Prisma.AuditLogUncheckedCreateNestedManyWithoutTenantInput
  products?: Prisma.ProductUncheckedCreateNestedManyWithoutTenantInput
  services?: Prisma.ServiceUncheckedCreateNestedManyWithoutTenantInput
  quoteRequests?: Prisma.QuoteRequestUncheckedCreateNestedManyWithoutTenantInput
  productCategories?: Prisma.ProductCategoryUncheckedCreateNestedManyWithoutTenantInput
  serviceCategories?: Prisma.ServiceCategoryUncheckedCreateNestedManyWithoutTenantInput
  mediaAssets?: Prisma.MediaAssetUncheckedCreateNestedManyWithoutTenantInput
  orders?: Prisma.OrderUncheckedCreateNestedManyWithoutTenantInput
  deliveryZones?: Prisma.DeliveryZoneUncheckedCreateNestedManyWithoutTenantInput
  blogPosts?: Prisma.BlogPostUncheckedCreateNestedManyWithoutTenantInput
  siteBanners?: Prisma.SiteBannerUncheckedCreateNestedManyWithoutTenantInput
}

export type TenantUpdateInput = {
  id?: Prisma.StringFieldUpdateOperationsInput | string
  name?: Prisma.StringFieldUpdateOperationsInput | string
  legalDocument?: Prisma.StringFieldUpdateOperationsInput | string
  slug?: Prisma.StringFieldUpdateOperationsInput | string
  email?: Prisma.StringFieldUpdateOperationsInput | string
  phone?: Prisma.StringFieldUpdateOperationsInput | string
  whatsapp?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  city?: Prisma.StringFieldUpdateOperationsInput | string
  state?: Prisma.StringFieldUpdateOperationsInput | string
  segment?: Prisma.StringFieldUpdateOperationsInput | string
  description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  addressLine?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  postalCode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  instagramUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  facebookUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  businessModel?: Prisma.EnumBusinessModelFieldUpdateOperationsInput | $Enums.BusinessModel
  status?: Prisma.EnumTenantStatusFieldUpdateOperationsInput | $Enums.TenantStatus
  directoryOptIn?: Prisma.BoolFieldUpdateOperationsInput | boolean
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  deliveryEnabled?: Prisma.BoolFieldUpdateOperationsInput | boolean
  deliveryPriceCents?: Prisma.IntFieldUpdateOperationsInput | number
  showGoogleMap?: Prisma.BoolFieldUpdateOperationsInput | boolean
  feature1Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature1Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  users?: Prisma.TenantUserUpdateManyWithoutTenantNestedInput
  domains?: Prisma.DomainUpdateManyWithoutTenantNestedInput
  theme?: Prisma.ThemeSettingUpdateOneWithoutTenantNestedInput
  subscription?: Prisma.SubscriptionUpdateOneWithoutTenantNestedInput
  auditLogs?: Prisma.AuditLogUpdateManyWithoutTenantNestedInput
  products?: Prisma.ProductUpdateManyWithoutTenantNestedInput
  services?: Prisma.ServiceUpdateManyWithoutTenantNestedInput
  quoteRequests?: Prisma.QuoteRequestUpdateManyWithoutTenantNestedInput
  productCategories?: Prisma.ProductCategoryUpdateManyWithoutTenantNestedInput
  serviceCategories?: Prisma.ServiceCategoryUpdateManyWithoutTenantNestedInput
  mediaAssets?: Prisma.MediaAssetUpdateManyWithoutTenantNestedInput
  orders?: Prisma.OrderUpdateManyWithoutTenantNestedInput
  deliveryZones?: Prisma.DeliveryZoneUpdateManyWithoutTenantNestedInput
  blogPosts?: Prisma.BlogPostUpdateManyWithoutTenantNestedInput
  siteBanners?: Prisma.SiteBannerUpdateManyWithoutTenantNestedInput
}

export type TenantUncheckedUpdateInput = {
  id?: Prisma.StringFieldUpdateOperationsInput | string
  name?: Prisma.StringFieldUpdateOperationsInput | string
  legalDocument?: Prisma.StringFieldUpdateOperationsInput | string
  slug?: Prisma.StringFieldUpdateOperationsInput | string
  email?: Prisma.StringFieldUpdateOperationsInput | string
  phone?: Prisma.StringFieldUpdateOperationsInput | string
  whatsapp?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  city?: Prisma.StringFieldUpdateOperationsInput | string
  state?: Prisma.StringFieldUpdateOperationsInput | string
  segment?: Prisma.StringFieldUpdateOperationsInput | string
  description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  addressLine?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  postalCode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  instagramUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  facebookUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  businessModel?: Prisma.EnumBusinessModelFieldUpdateOperationsInput | $Enums.BusinessModel
  status?: Prisma.EnumTenantStatusFieldUpdateOperationsInput | $Enums.TenantStatus
  directoryOptIn?: Prisma.BoolFieldUpdateOperationsInput | boolean
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  deliveryEnabled?: Prisma.BoolFieldUpdateOperationsInput | boolean
  deliveryPriceCents?: Prisma.IntFieldUpdateOperationsInput | number
  showGoogleMap?: Prisma.BoolFieldUpdateOperationsInput | boolean
  feature1Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature1Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  users?: Prisma.TenantUserUncheckedUpdateManyWithoutTenantNestedInput
  domains?: Prisma.DomainUncheckedUpdateManyWithoutTenantNestedInput
  theme?: Prisma.ThemeSettingUncheckedUpdateOneWithoutTenantNestedInput
  subscription?: Prisma.SubscriptionUncheckedUpdateOneWithoutTenantNestedInput
  auditLogs?: Prisma.AuditLogUncheckedUpdateManyWithoutTenantNestedInput
  products?: Prisma.ProductUncheckedUpdateManyWithoutTenantNestedInput
  services?: Prisma.ServiceUncheckedUpdateManyWithoutTenantNestedInput
  quoteRequests?: Prisma.QuoteRequestUncheckedUpdateManyWithoutTenantNestedInput
  productCategories?: Prisma.ProductCategoryUncheckedUpdateManyWithoutTenantNestedInput
  serviceCategories?: Prisma.ServiceCategoryUncheckedUpdateManyWithoutTenantNestedInput
  mediaAssets?: Prisma.MediaAssetUncheckedUpdateManyWithoutTenantNestedInput
  orders?: Prisma.OrderUncheckedUpdateManyWithoutTenantNestedInput
  deliveryZones?: Prisma.DeliveryZoneUncheckedUpdateManyWithoutTenantNestedInput
  blogPosts?: Prisma.BlogPostUncheckedUpdateManyWithoutTenantNestedInput
  siteBanners?: Prisma.SiteBannerUncheckedUpdateManyWithoutTenantNestedInput
}

export type TenantCreateManyInput = {
  id?: string
  name: string
  legalDocument: string
  slug: string
  email: string
  phone: string
  whatsapp?: string | null
  city: string
  state: string
  segment: string
  description?: string | null
  addressLine?: string | null
  postalCode?: string | null
  instagramUrl?: string | null
  facebookUrl?: string | null
  businessModel: $Enums.BusinessModel
  status?: $Enums.TenantStatus
  directoryOptIn?: boolean
  createdAt?: Date | string
  updatedAt?: Date | string
  deletedAt?: Date | string | null
  deliveryEnabled?: boolean
  deliveryPriceCents?: number
  showGoogleMap?: boolean
  feature1Title?: string | null
  feature1Description?: string | null
  feature2Title?: string | null
  feature2Description?: string | null
  feature3Title?: string | null
  feature3Description?: string | null
}

export type TenantUpdateManyMutationInput = {
  id?: Prisma.StringFieldUpdateOperationsInput | string
  name?: Prisma.StringFieldUpdateOperationsInput | string
  legalDocument?: Prisma.StringFieldUpdateOperationsInput | string
  slug?: Prisma.StringFieldUpdateOperationsInput | string
  email?: Prisma.StringFieldUpdateOperationsInput | string
  phone?: Prisma.StringFieldUpdateOperationsInput | string
  whatsapp?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  city?: Prisma.StringFieldUpdateOperationsInput | string
  state?: Prisma.StringFieldUpdateOperationsInput | string
  segment?: Prisma.StringFieldUpdateOperationsInput | string
  description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  addressLine?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  postalCode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  instagramUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  facebookUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  businessModel?: Prisma.EnumBusinessModelFieldUpdateOperationsInput | $Enums.BusinessModel
  status?: Prisma.EnumTenantStatusFieldUpdateOperationsInput | $Enums.TenantStatus
  directoryOptIn?: Prisma.BoolFieldUpdateOperationsInput | boolean
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  deliveryEnabled?: Prisma.BoolFieldUpdateOperationsInput | boolean
  deliveryPriceCents?: Prisma.IntFieldUpdateOperationsInput | number
  showGoogleMap?: Prisma.BoolFieldUpdateOperationsInput | boolean
  feature1Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature1Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
}

export type TenantUncheckedUpdateManyInput = {
  id?: Prisma.StringFieldUpdateOperationsInput | string
  name?: Prisma.StringFieldUpdateOperationsInput | string
  legalDocument?: Prisma.StringFieldUpdateOperationsInput | string
  slug?: Prisma.StringFieldUpdateOperationsInput | string
  email?: Prisma.StringFieldUpdateOperationsInput | string
  phone?: Prisma.StringFieldUpdateOperationsInput | string
  whatsapp?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  city?: Prisma.StringFieldUpdateOperationsInput | string
  state?: Prisma.StringFieldUpdateOperationsInput | string
  segment?: Prisma.StringFieldUpdateOperationsInput | string
  description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  addressLine?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  postalCode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  instagramUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  facebookUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  businessModel?: Prisma.EnumBusinessModelFieldUpdateOperationsInput | $Enums.BusinessModel
  status?: Prisma.EnumTenantStatusFieldUpdateOperationsInput | $Enums.TenantStatus
  directoryOptIn?: Prisma.BoolFieldUpdateOperationsInput | boolean
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  deliveryEnabled?: Prisma.BoolFieldUpdateOperationsInput | boolean
  deliveryPriceCents?: Prisma.IntFieldUpdateOperationsInput | number
  showGoogleMap?: Prisma.BoolFieldUpdateOperationsInput | boolean
  feature1Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature1Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
}

export type TenantCountOrderByAggregateInput = {
  id?: Prisma.SortOrder
  name?: Prisma.SortOrder
  legalDocument?: Prisma.SortOrder
  slug?: Prisma.SortOrder
  email?: Prisma.SortOrder
  phone?: Prisma.SortOrder
  whatsapp?: Prisma.SortOrder
  city?: Prisma.SortOrder
  state?: Prisma.SortOrder
  segment?: Prisma.SortOrder
  description?: Prisma.SortOrder
  addressLine?: Prisma.SortOrder
  postalCode?: Prisma.SortOrder
  instagramUrl?: Prisma.SortOrder
  facebookUrl?: Prisma.SortOrder
  businessModel?: Prisma.SortOrder
  status?: Prisma.SortOrder
  directoryOptIn?: Prisma.SortOrder
  createdAt?: Prisma.SortOrder
  updatedAt?: Prisma.SortOrder
  deletedAt?: Prisma.SortOrder
  deliveryEnabled?: Prisma.SortOrder
  deliveryPriceCents?: Prisma.SortOrder
  showGoogleMap?: Prisma.SortOrder
  feature1Title?: Prisma.SortOrder
  feature1Description?: Prisma.SortOrder
  feature2Title?: Prisma.SortOrder
  feature2Description?: Prisma.SortOrder
  feature3Title?: Prisma.SortOrder
  feature3Description?: Prisma.SortOrder
}

export type TenantAvgOrderByAggregateInput = {
  deliveryPriceCents?: Prisma.SortOrder
}

export type TenantMaxOrderByAggregateInput = {
  id?: Prisma.SortOrder
  name?: Prisma.SortOrder
  legalDocument?: Prisma.SortOrder
  slug?: Prisma.SortOrder
  email?: Prisma.SortOrder
  phone?: Prisma.SortOrder
  whatsapp?: Prisma.SortOrder
  city?: Prisma.SortOrder
  state?: Prisma.SortOrder
  segment?: Prisma.SortOrder
  description?: Prisma.SortOrder
  addressLine?: Prisma.SortOrder
  postalCode?: Prisma.SortOrder
  instagramUrl?: Prisma.SortOrder
  facebookUrl?: Prisma.SortOrder
  businessModel?: Prisma.SortOrder
  status?: Prisma.SortOrder
  directoryOptIn?: Prisma.SortOrder
  createdAt?: Prisma.SortOrder
  updatedAt?: Prisma.SortOrder
  deletedAt?: Prisma.SortOrder
  deliveryEnabled?: Prisma.SortOrder
  deliveryPriceCents?: Prisma.SortOrder
  showGoogleMap?: Prisma.SortOrder
  feature1Title?: Prisma.SortOrder
  feature1Description?: Prisma.SortOrder
  feature2Title?: Prisma.SortOrder
  feature2Description?: Prisma.SortOrder
  feature3Title?: Prisma.SortOrder
  feature3Description?: Prisma.SortOrder
}

export type TenantMinOrderByAggregateInput = {
  id?: Prisma.SortOrder
  name?: Prisma.SortOrder
  legalDocument?: Prisma.SortOrder
  slug?: Prisma.SortOrder
  email?: Prisma.SortOrder
  phone?: Prisma.SortOrder
  whatsapp?: Prisma.SortOrder
  city?: Prisma.SortOrder
  state?: Prisma.SortOrder
  segment?: Prisma.SortOrder
  description?: Prisma.SortOrder
  addressLine?: Prisma.SortOrder
  postalCode?: Prisma.SortOrder
  instagramUrl?: Prisma.SortOrder
  facebookUrl?: Prisma.SortOrder
  businessModel?: Prisma.SortOrder
  status?: Prisma.SortOrder
  directoryOptIn?: Prisma.SortOrder
  createdAt?: Prisma.SortOrder
  updatedAt?: Prisma.SortOrder
  deletedAt?: Prisma.SortOrder
  deliveryEnabled?: Prisma.SortOrder
  deliveryPriceCents?: Prisma.SortOrder
  showGoogleMap?: Prisma.SortOrder
  feature1Title?: Prisma.SortOrder
  feature1Description?: Prisma.SortOrder
  feature2Title?: Prisma.SortOrder
  feature2Description?: Prisma.SortOrder
  feature3Title?: Prisma.SortOrder
  feature3Description?: Prisma.SortOrder
}

export type TenantSumOrderByAggregateInput = {
  deliveryPriceCents?: Prisma.SortOrder
}

export type TenantScalarRelationFilter = {
  is?: Prisma.TenantWhereInput
  isNot?: Prisma.TenantWhereInput
}

export type TenantNullableScalarRelationFilter = {
  is?: Prisma.TenantWhereInput | null
  isNot?: Prisma.TenantWhereInput | null
}

export type EnumBusinessModelFieldUpdateOperationsInput = {
  set?: $Enums.BusinessModel
}

export type EnumTenantStatusFieldUpdateOperationsInput = {
  set?: $Enums.TenantStatus
}

export type TenantCreateNestedOneWithoutDeliveryZonesInput = {
  create?: Prisma.XOR<Prisma.TenantCreateWithoutDeliveryZonesInput, Prisma.TenantUncheckedCreateWithoutDeliveryZonesInput>
  connectOrCreate?: Prisma.TenantCreateOrConnectWithoutDeliveryZonesInput
  connect?: Prisma.TenantWhereUniqueInput
}

export type TenantUpdateOneRequiredWithoutDeliveryZonesNestedInput = {
  create?: Prisma.XOR<Prisma.TenantCreateWithoutDeliveryZonesInput, Prisma.TenantUncheckedCreateWithoutDeliveryZonesInput>
  connectOrCreate?: Prisma.TenantCreateOrConnectWithoutDeliveryZonesInput
  upsert?: Prisma.TenantUpsertWithoutDeliveryZonesInput
  connect?: Prisma.TenantWhereUniqueInput
  update?: Prisma.XOR<Prisma.XOR<Prisma.TenantUpdateToOneWithWhereWithoutDeliveryZonesInput, Prisma.TenantUpdateWithoutDeliveryZonesInput>, Prisma.TenantUncheckedUpdateWithoutDeliveryZonesInput>
}

export type TenantCreateNestedOneWithoutMediaAssetsInput = {
  create?: Prisma.XOR<Prisma.TenantCreateWithoutMediaAssetsInput, Prisma.TenantUncheckedCreateWithoutMediaAssetsInput>
  connectOrCreate?: Prisma.TenantCreateOrConnectWithoutMediaAssetsInput
  connect?: Prisma.TenantWhereUniqueInput
}

export type TenantUpdateOneRequiredWithoutMediaAssetsNestedInput = {
  create?: Prisma.XOR<Prisma.TenantCreateWithoutMediaAssetsInput, Prisma.TenantUncheckedCreateWithoutMediaAssetsInput>
  connectOrCreate?: Prisma.TenantCreateOrConnectWithoutMediaAssetsInput
  upsert?: Prisma.TenantUpsertWithoutMediaAssetsInput
  connect?: Prisma.TenantWhereUniqueInput
  update?: Prisma.XOR<Prisma.XOR<Prisma.TenantUpdateToOneWithWhereWithoutMediaAssetsInput, Prisma.TenantUpdateWithoutMediaAssetsInput>, Prisma.TenantUncheckedUpdateWithoutMediaAssetsInput>
}

export type TenantCreateNestedOneWithoutUsersInput = {
  create?: Prisma.XOR<Prisma.TenantCreateWithoutUsersInput, Prisma.TenantUncheckedCreateWithoutUsersInput>
  connectOrCreate?: Prisma.TenantCreateOrConnectWithoutUsersInput
  connect?: Prisma.TenantWhereUniqueInput
}

export type TenantUpdateOneRequiredWithoutUsersNestedInput = {
  create?: Prisma.XOR<Prisma.TenantCreateWithoutUsersInput, Prisma.TenantUncheckedCreateWithoutUsersInput>
  connectOrCreate?: Prisma.TenantCreateOrConnectWithoutUsersInput
  upsert?: Prisma.TenantUpsertWithoutUsersInput
  connect?: Prisma.TenantWhereUniqueInput
  update?: Prisma.XOR<Prisma.XOR<Prisma.TenantUpdateToOneWithWhereWithoutUsersInput, Prisma.TenantUpdateWithoutUsersInput>, Prisma.TenantUncheckedUpdateWithoutUsersInput>
}

export type TenantCreateNestedOneWithoutSubscriptionInput = {
  create?: Prisma.XOR<Prisma.TenantCreateWithoutSubscriptionInput, Prisma.TenantUncheckedCreateWithoutSubscriptionInput>
  connectOrCreate?: Prisma.TenantCreateOrConnectWithoutSubscriptionInput
  connect?: Prisma.TenantWhereUniqueInput
}

export type TenantUpdateOneRequiredWithoutSubscriptionNestedInput = {
  create?: Prisma.XOR<Prisma.TenantCreateWithoutSubscriptionInput, Prisma.TenantUncheckedCreateWithoutSubscriptionInput>
  connectOrCreate?: Prisma.TenantCreateOrConnectWithoutSubscriptionInput
  upsert?: Prisma.TenantUpsertWithoutSubscriptionInput
  connect?: Prisma.TenantWhereUniqueInput
  update?: Prisma.XOR<Prisma.XOR<Prisma.TenantUpdateToOneWithWhereWithoutSubscriptionInput, Prisma.TenantUpdateWithoutSubscriptionInput>, Prisma.TenantUncheckedUpdateWithoutSubscriptionInput>
}

export type TenantCreateNestedOneWithoutDomainsInput = {
  create?: Prisma.XOR<Prisma.TenantCreateWithoutDomainsInput, Prisma.TenantUncheckedCreateWithoutDomainsInput>
  connectOrCreate?: Prisma.TenantCreateOrConnectWithoutDomainsInput
  connect?: Prisma.TenantWhereUniqueInput
}

export type TenantUpdateOneRequiredWithoutDomainsNestedInput = {
  create?: Prisma.XOR<Prisma.TenantCreateWithoutDomainsInput, Prisma.TenantUncheckedCreateWithoutDomainsInput>
  connectOrCreate?: Prisma.TenantCreateOrConnectWithoutDomainsInput
  upsert?: Prisma.TenantUpsertWithoutDomainsInput
  connect?: Prisma.TenantWhereUniqueInput
  update?: Prisma.XOR<Prisma.XOR<Prisma.TenantUpdateToOneWithWhereWithoutDomainsInput, Prisma.TenantUpdateWithoutDomainsInput>, Prisma.TenantUncheckedUpdateWithoutDomainsInput>
}

export type TenantCreateNestedOneWithoutThemeInput = {
  create?: Prisma.XOR<Prisma.TenantCreateWithoutThemeInput, Prisma.TenantUncheckedCreateWithoutThemeInput>
  connectOrCreate?: Prisma.TenantCreateOrConnectWithoutThemeInput
  connect?: Prisma.TenantWhereUniqueInput
}

export type TenantUpdateOneRequiredWithoutThemeNestedInput = {
  create?: Prisma.XOR<Prisma.TenantCreateWithoutThemeInput, Prisma.TenantUncheckedCreateWithoutThemeInput>
  connectOrCreate?: Prisma.TenantCreateOrConnectWithoutThemeInput
  upsert?: Prisma.TenantUpsertWithoutThemeInput
  connect?: Prisma.TenantWhereUniqueInput
  update?: Prisma.XOR<Prisma.XOR<Prisma.TenantUpdateToOneWithWhereWithoutThemeInput, Prisma.TenantUpdateWithoutThemeInput>, Prisma.TenantUncheckedUpdateWithoutThemeInput>
}

export type TenantCreateNestedOneWithoutSiteBannersInput = {
  create?: Prisma.XOR<Prisma.TenantCreateWithoutSiteBannersInput, Prisma.TenantUncheckedCreateWithoutSiteBannersInput>
  connectOrCreate?: Prisma.TenantCreateOrConnectWithoutSiteBannersInput
  connect?: Prisma.TenantWhereUniqueInput
}

export type TenantUpdateOneRequiredWithoutSiteBannersNestedInput = {
  create?: Prisma.XOR<Prisma.TenantCreateWithoutSiteBannersInput, Prisma.TenantUncheckedCreateWithoutSiteBannersInput>
  connectOrCreate?: Prisma.TenantCreateOrConnectWithoutSiteBannersInput
  upsert?: Prisma.TenantUpsertWithoutSiteBannersInput
  connect?: Prisma.TenantWhereUniqueInput
  update?: Prisma.XOR<Prisma.XOR<Prisma.TenantUpdateToOneWithWhereWithoutSiteBannersInput, Prisma.TenantUpdateWithoutSiteBannersInput>, Prisma.TenantUncheckedUpdateWithoutSiteBannersInput>
}

export type TenantCreateNestedOneWithoutProductsInput = {
  create?: Prisma.XOR<Prisma.TenantCreateWithoutProductsInput, Prisma.TenantUncheckedCreateWithoutProductsInput>
  connectOrCreate?: Prisma.TenantCreateOrConnectWithoutProductsInput
  connect?: Prisma.TenantWhereUniqueInput
}

export type TenantUpdateOneRequiredWithoutProductsNestedInput = {
  create?: Prisma.XOR<Prisma.TenantCreateWithoutProductsInput, Prisma.TenantUncheckedCreateWithoutProductsInput>
  connectOrCreate?: Prisma.TenantCreateOrConnectWithoutProductsInput
  upsert?: Prisma.TenantUpsertWithoutProductsInput
  connect?: Prisma.TenantWhereUniqueInput
  update?: Prisma.XOR<Prisma.XOR<Prisma.TenantUpdateToOneWithWhereWithoutProductsInput, Prisma.TenantUpdateWithoutProductsInput>, Prisma.TenantUncheckedUpdateWithoutProductsInput>
}

export type TenantCreateNestedOneWithoutProductCategoriesInput = {
  create?: Prisma.XOR<Prisma.TenantCreateWithoutProductCategoriesInput, Prisma.TenantUncheckedCreateWithoutProductCategoriesInput>
  connectOrCreate?: Prisma.TenantCreateOrConnectWithoutProductCategoriesInput
  connect?: Prisma.TenantWhereUniqueInput
}

export type TenantUpdateOneRequiredWithoutProductCategoriesNestedInput = {
  create?: Prisma.XOR<Prisma.TenantCreateWithoutProductCategoriesInput, Prisma.TenantUncheckedCreateWithoutProductCategoriesInput>
  connectOrCreate?: Prisma.TenantCreateOrConnectWithoutProductCategoriesInput
  upsert?: Prisma.TenantUpsertWithoutProductCategoriesInput
  connect?: Prisma.TenantWhereUniqueInput
  update?: Prisma.XOR<Prisma.XOR<Prisma.TenantUpdateToOneWithWhereWithoutProductCategoriesInput, Prisma.TenantUpdateWithoutProductCategoriesInput>, Prisma.TenantUncheckedUpdateWithoutProductCategoriesInput>
}

export type TenantCreateNestedOneWithoutServicesInput = {
  create?: Prisma.XOR<Prisma.TenantCreateWithoutServicesInput, Prisma.TenantUncheckedCreateWithoutServicesInput>
  connectOrCreate?: Prisma.TenantCreateOrConnectWithoutServicesInput
  connect?: Prisma.TenantWhereUniqueInput
}

export type TenantUpdateOneRequiredWithoutServicesNestedInput = {
  create?: Prisma.XOR<Prisma.TenantCreateWithoutServicesInput, Prisma.TenantUncheckedCreateWithoutServicesInput>
  connectOrCreate?: Prisma.TenantCreateOrConnectWithoutServicesInput
  upsert?: Prisma.TenantUpsertWithoutServicesInput
  connect?: Prisma.TenantWhereUniqueInput
  update?: Prisma.XOR<Prisma.XOR<Prisma.TenantUpdateToOneWithWhereWithoutServicesInput, Prisma.TenantUpdateWithoutServicesInput>, Prisma.TenantUncheckedUpdateWithoutServicesInput>
}

export type TenantCreateNestedOneWithoutServiceCategoriesInput = {
  create?: Prisma.XOR<Prisma.TenantCreateWithoutServiceCategoriesInput, Prisma.TenantUncheckedCreateWithoutServiceCategoriesInput>
  connectOrCreate?: Prisma.TenantCreateOrConnectWithoutServiceCategoriesInput
  connect?: Prisma.TenantWhereUniqueInput
}

export type TenantUpdateOneRequiredWithoutServiceCategoriesNestedInput = {
  create?: Prisma.XOR<Prisma.TenantCreateWithoutServiceCategoriesInput, Prisma.TenantUncheckedCreateWithoutServiceCategoriesInput>
  connectOrCreate?: Prisma.TenantCreateOrConnectWithoutServiceCategoriesInput
  upsert?: Prisma.TenantUpsertWithoutServiceCategoriesInput
  connect?: Prisma.TenantWhereUniqueInput
  update?: Prisma.XOR<Prisma.XOR<Prisma.TenantUpdateToOneWithWhereWithoutServiceCategoriesInput, Prisma.TenantUpdateWithoutServiceCategoriesInput>, Prisma.TenantUncheckedUpdateWithoutServiceCategoriesInput>
}

export type TenantCreateNestedOneWithoutQuoteRequestsInput = {
  create?: Prisma.XOR<Prisma.TenantCreateWithoutQuoteRequestsInput, Prisma.TenantUncheckedCreateWithoutQuoteRequestsInput>
  connectOrCreate?: Prisma.TenantCreateOrConnectWithoutQuoteRequestsInput
  connect?: Prisma.TenantWhereUniqueInput
}

export type TenantUpdateOneRequiredWithoutQuoteRequestsNestedInput = {
  create?: Prisma.XOR<Prisma.TenantCreateWithoutQuoteRequestsInput, Prisma.TenantUncheckedCreateWithoutQuoteRequestsInput>
  connectOrCreate?: Prisma.TenantCreateOrConnectWithoutQuoteRequestsInput
  upsert?: Prisma.TenantUpsertWithoutQuoteRequestsInput
  connect?: Prisma.TenantWhereUniqueInput
  update?: Prisma.XOR<Prisma.XOR<Prisma.TenantUpdateToOneWithWhereWithoutQuoteRequestsInput, Prisma.TenantUpdateWithoutQuoteRequestsInput>, Prisma.TenantUncheckedUpdateWithoutQuoteRequestsInput>
}

export type TenantCreateNestedOneWithoutOrdersInput = {
  create?: Prisma.XOR<Prisma.TenantCreateWithoutOrdersInput, Prisma.TenantUncheckedCreateWithoutOrdersInput>
  connectOrCreate?: Prisma.TenantCreateOrConnectWithoutOrdersInput
  connect?: Prisma.TenantWhereUniqueInput
}

export type TenantUpdateOneRequiredWithoutOrdersNestedInput = {
  create?: Prisma.XOR<Prisma.TenantCreateWithoutOrdersInput, Prisma.TenantUncheckedCreateWithoutOrdersInput>
  connectOrCreate?: Prisma.TenantCreateOrConnectWithoutOrdersInput
  upsert?: Prisma.TenantUpsertWithoutOrdersInput
  connect?: Prisma.TenantWhereUniqueInput
  update?: Prisma.XOR<Prisma.XOR<Prisma.TenantUpdateToOneWithWhereWithoutOrdersInput, Prisma.TenantUpdateWithoutOrdersInput>, Prisma.TenantUncheckedUpdateWithoutOrdersInput>
}

export type TenantCreateNestedOneWithoutAuditLogsInput = {
  create?: Prisma.XOR<Prisma.TenantCreateWithoutAuditLogsInput, Prisma.TenantUncheckedCreateWithoutAuditLogsInput>
  connectOrCreate?: Prisma.TenantCreateOrConnectWithoutAuditLogsInput
  connect?: Prisma.TenantWhereUniqueInput
}

export type TenantUpdateOneWithoutAuditLogsNestedInput = {
  create?: Prisma.XOR<Prisma.TenantCreateWithoutAuditLogsInput, Prisma.TenantUncheckedCreateWithoutAuditLogsInput>
  connectOrCreate?: Prisma.TenantCreateOrConnectWithoutAuditLogsInput
  upsert?: Prisma.TenantUpsertWithoutAuditLogsInput
  disconnect?: Prisma.TenantWhereInput | boolean
  delete?: Prisma.TenantWhereInput | boolean
  connect?: Prisma.TenantWhereUniqueInput
  update?: Prisma.XOR<Prisma.XOR<Prisma.TenantUpdateToOneWithWhereWithoutAuditLogsInput, Prisma.TenantUpdateWithoutAuditLogsInput>, Prisma.TenantUncheckedUpdateWithoutAuditLogsInput>
}

export type TenantCreateNestedOneWithoutBlogPostsInput = {
  create?: Prisma.XOR<Prisma.TenantCreateWithoutBlogPostsInput, Prisma.TenantUncheckedCreateWithoutBlogPostsInput>
  connectOrCreate?: Prisma.TenantCreateOrConnectWithoutBlogPostsInput
  connect?: Prisma.TenantWhereUniqueInput
}

export type TenantUpdateOneWithoutBlogPostsNestedInput = {
  create?: Prisma.XOR<Prisma.TenantCreateWithoutBlogPostsInput, Prisma.TenantUncheckedCreateWithoutBlogPostsInput>
  connectOrCreate?: Prisma.TenantCreateOrConnectWithoutBlogPostsInput
  upsert?: Prisma.TenantUpsertWithoutBlogPostsInput
  disconnect?: Prisma.TenantWhereInput | boolean
  delete?: Prisma.TenantWhereInput | boolean
  connect?: Prisma.TenantWhereUniqueInput
  update?: Prisma.XOR<Prisma.XOR<Prisma.TenantUpdateToOneWithWhereWithoutBlogPostsInput, Prisma.TenantUpdateWithoutBlogPostsInput>, Prisma.TenantUncheckedUpdateWithoutBlogPostsInput>
}

export type TenantCreateWithoutDeliveryZonesInput = {
  id?: string
  name: string
  legalDocument: string
  slug: string
  email: string
  phone: string
  whatsapp?: string | null
  city: string
  state: string
  segment: string
  description?: string | null
  addressLine?: string | null
  postalCode?: string | null
  instagramUrl?: string | null
  facebookUrl?: string | null
  businessModel: $Enums.BusinessModel
  status?: $Enums.TenantStatus
  directoryOptIn?: boolean
  createdAt?: Date | string
  updatedAt?: Date | string
  deletedAt?: Date | string | null
  deliveryEnabled?: boolean
  deliveryPriceCents?: number
  showGoogleMap?: boolean
  feature1Title?: string | null
  feature1Description?: string | null
  feature2Title?: string | null
  feature2Description?: string | null
  feature3Title?: string | null
  feature3Description?: string | null
  users?: Prisma.TenantUserCreateNestedManyWithoutTenantInput
  domains?: Prisma.DomainCreateNestedManyWithoutTenantInput
  theme?: Prisma.ThemeSettingCreateNestedOneWithoutTenantInput
  subscription?: Prisma.SubscriptionCreateNestedOneWithoutTenantInput
  auditLogs?: Prisma.AuditLogCreateNestedManyWithoutTenantInput
  products?: Prisma.ProductCreateNestedManyWithoutTenantInput
  services?: Prisma.ServiceCreateNestedManyWithoutTenantInput
  quoteRequests?: Prisma.QuoteRequestCreateNestedManyWithoutTenantInput
  productCategories?: Prisma.ProductCategoryCreateNestedManyWithoutTenantInput
  serviceCategories?: Prisma.ServiceCategoryCreateNestedManyWithoutTenantInput
  mediaAssets?: Prisma.MediaAssetCreateNestedManyWithoutTenantInput
  orders?: Prisma.OrderCreateNestedManyWithoutTenantInput
  blogPosts?: Prisma.BlogPostCreateNestedManyWithoutTenantInput
  siteBanners?: Prisma.SiteBannerCreateNestedManyWithoutTenantInput
}

export type TenantUncheckedCreateWithoutDeliveryZonesInput = {
  id?: string
  name: string
  legalDocument: string
  slug: string
  email: string
  phone: string
  whatsapp?: string | null
  city: string
  state: string
  segment: string
  description?: string | null
  addressLine?: string | null
  postalCode?: string | null
  instagramUrl?: string | null
  facebookUrl?: string | null
  businessModel: $Enums.BusinessModel
  status?: $Enums.TenantStatus
  directoryOptIn?: boolean
  createdAt?: Date | string
  updatedAt?: Date | string
  deletedAt?: Date | string | null
  deliveryEnabled?: boolean
  deliveryPriceCents?: number
  showGoogleMap?: boolean
  feature1Title?: string | null
  feature1Description?: string | null
  feature2Title?: string | null
  feature2Description?: string | null
  feature3Title?: string | null
  feature3Description?: string | null
  users?: Prisma.TenantUserUncheckedCreateNestedManyWithoutTenantInput
  domains?: Prisma.DomainUncheckedCreateNestedManyWithoutTenantInput
  theme?: Prisma.ThemeSettingUncheckedCreateNestedOneWithoutTenantInput
  subscription?: Prisma.SubscriptionUncheckedCreateNestedOneWithoutTenantInput
  auditLogs?: Prisma.AuditLogUncheckedCreateNestedManyWithoutTenantInput
  products?: Prisma.ProductUncheckedCreateNestedManyWithoutTenantInput
  services?: Prisma.ServiceUncheckedCreateNestedManyWithoutTenantInput
  quoteRequests?: Prisma.QuoteRequestUncheckedCreateNestedManyWithoutTenantInput
  productCategories?: Prisma.ProductCategoryUncheckedCreateNestedManyWithoutTenantInput
  serviceCategories?: Prisma.ServiceCategoryUncheckedCreateNestedManyWithoutTenantInput
  mediaAssets?: Prisma.MediaAssetUncheckedCreateNestedManyWithoutTenantInput
  orders?: Prisma.OrderUncheckedCreateNestedManyWithoutTenantInput
  blogPosts?: Prisma.BlogPostUncheckedCreateNestedManyWithoutTenantInput
  siteBanners?: Prisma.SiteBannerUncheckedCreateNestedManyWithoutTenantInput
}

export type TenantCreateOrConnectWithoutDeliveryZonesInput = {
  where: Prisma.TenantWhereUniqueInput
  create: Prisma.XOR<Prisma.TenantCreateWithoutDeliveryZonesInput, Prisma.TenantUncheckedCreateWithoutDeliveryZonesInput>
}

export type TenantUpsertWithoutDeliveryZonesInput = {
  update: Prisma.XOR<Prisma.TenantUpdateWithoutDeliveryZonesInput, Prisma.TenantUncheckedUpdateWithoutDeliveryZonesInput>
  create: Prisma.XOR<Prisma.TenantCreateWithoutDeliveryZonesInput, Prisma.TenantUncheckedCreateWithoutDeliveryZonesInput>
  where?: Prisma.TenantWhereInput
}

export type TenantUpdateToOneWithWhereWithoutDeliveryZonesInput = {
  where?: Prisma.TenantWhereInput
  data: Prisma.XOR<Prisma.TenantUpdateWithoutDeliveryZonesInput, Prisma.TenantUncheckedUpdateWithoutDeliveryZonesInput>
}

export type TenantUpdateWithoutDeliveryZonesInput = {
  id?: Prisma.StringFieldUpdateOperationsInput | string
  name?: Prisma.StringFieldUpdateOperationsInput | string
  legalDocument?: Prisma.StringFieldUpdateOperationsInput | string
  slug?: Prisma.StringFieldUpdateOperationsInput | string
  email?: Prisma.StringFieldUpdateOperationsInput | string
  phone?: Prisma.StringFieldUpdateOperationsInput | string
  whatsapp?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  city?: Prisma.StringFieldUpdateOperationsInput | string
  state?: Prisma.StringFieldUpdateOperationsInput | string
  segment?: Prisma.StringFieldUpdateOperationsInput | string
  description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  addressLine?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  postalCode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  instagramUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  facebookUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  businessModel?: Prisma.EnumBusinessModelFieldUpdateOperationsInput | $Enums.BusinessModel
  status?: Prisma.EnumTenantStatusFieldUpdateOperationsInput | $Enums.TenantStatus
  directoryOptIn?: Prisma.BoolFieldUpdateOperationsInput | boolean
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  deliveryEnabled?: Prisma.BoolFieldUpdateOperationsInput | boolean
  deliveryPriceCents?: Prisma.IntFieldUpdateOperationsInput | number
  showGoogleMap?: Prisma.BoolFieldUpdateOperationsInput | boolean
  feature1Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature1Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  users?: Prisma.TenantUserUpdateManyWithoutTenantNestedInput
  domains?: Prisma.DomainUpdateManyWithoutTenantNestedInput
  theme?: Prisma.ThemeSettingUpdateOneWithoutTenantNestedInput
  subscription?: Prisma.SubscriptionUpdateOneWithoutTenantNestedInput
  auditLogs?: Prisma.AuditLogUpdateManyWithoutTenantNestedInput
  products?: Prisma.ProductUpdateManyWithoutTenantNestedInput
  services?: Prisma.ServiceUpdateManyWithoutTenantNestedInput
  quoteRequests?: Prisma.QuoteRequestUpdateManyWithoutTenantNestedInput
  productCategories?: Prisma.ProductCategoryUpdateManyWithoutTenantNestedInput
  serviceCategories?: Prisma.ServiceCategoryUpdateManyWithoutTenantNestedInput
  mediaAssets?: Prisma.MediaAssetUpdateManyWithoutTenantNestedInput
  orders?: Prisma.OrderUpdateManyWithoutTenantNestedInput
  blogPosts?: Prisma.BlogPostUpdateManyWithoutTenantNestedInput
  siteBanners?: Prisma.SiteBannerUpdateManyWithoutTenantNestedInput
}

export type TenantUncheckedUpdateWithoutDeliveryZonesInput = {
  id?: Prisma.StringFieldUpdateOperationsInput | string
  name?: Prisma.StringFieldUpdateOperationsInput | string
  legalDocument?: Prisma.StringFieldUpdateOperationsInput | string
  slug?: Prisma.StringFieldUpdateOperationsInput | string
  email?: Prisma.StringFieldUpdateOperationsInput | string
  phone?: Prisma.StringFieldUpdateOperationsInput | string
  whatsapp?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  city?: Prisma.StringFieldUpdateOperationsInput | string
  state?: Prisma.StringFieldUpdateOperationsInput | string
  segment?: Prisma.StringFieldUpdateOperationsInput | string
  description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  addressLine?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  postalCode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  instagramUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  facebookUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  businessModel?: Prisma.EnumBusinessModelFieldUpdateOperationsInput | $Enums.BusinessModel
  status?: Prisma.EnumTenantStatusFieldUpdateOperationsInput | $Enums.TenantStatus
  directoryOptIn?: Prisma.BoolFieldUpdateOperationsInput | boolean
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  deliveryEnabled?: Prisma.BoolFieldUpdateOperationsInput | boolean
  deliveryPriceCents?: Prisma.IntFieldUpdateOperationsInput | number
  showGoogleMap?: Prisma.BoolFieldUpdateOperationsInput | boolean
  feature1Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature1Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  users?: Prisma.TenantUserUncheckedUpdateManyWithoutTenantNestedInput
  domains?: Prisma.DomainUncheckedUpdateManyWithoutTenantNestedInput
  theme?: Prisma.ThemeSettingUncheckedUpdateOneWithoutTenantNestedInput
  subscription?: Prisma.SubscriptionUncheckedUpdateOneWithoutTenantNestedInput
  auditLogs?: Prisma.AuditLogUncheckedUpdateManyWithoutTenantNestedInput
  products?: Prisma.ProductUncheckedUpdateManyWithoutTenantNestedInput
  services?: Prisma.ServiceUncheckedUpdateManyWithoutTenantNestedInput
  quoteRequests?: Prisma.QuoteRequestUncheckedUpdateManyWithoutTenantNestedInput
  productCategories?: Prisma.ProductCategoryUncheckedUpdateManyWithoutTenantNestedInput
  serviceCategories?: Prisma.ServiceCategoryUncheckedUpdateManyWithoutTenantNestedInput
  mediaAssets?: Prisma.MediaAssetUncheckedUpdateManyWithoutTenantNestedInput
  orders?: Prisma.OrderUncheckedUpdateManyWithoutTenantNestedInput
  blogPosts?: Prisma.BlogPostUncheckedUpdateManyWithoutTenantNestedInput
  siteBanners?: Prisma.SiteBannerUncheckedUpdateManyWithoutTenantNestedInput
}

export type TenantCreateWithoutMediaAssetsInput = {
  id?: string
  name: string
  legalDocument: string
  slug: string
  email: string
  phone: string
  whatsapp?: string | null
  city: string
  state: string
  segment: string
  description?: string | null
  addressLine?: string | null
  postalCode?: string | null
  instagramUrl?: string | null
  facebookUrl?: string | null
  businessModel: $Enums.BusinessModel
  status?: $Enums.TenantStatus
  directoryOptIn?: boolean
  createdAt?: Date | string
  updatedAt?: Date | string
  deletedAt?: Date | string | null
  deliveryEnabled?: boolean
  deliveryPriceCents?: number
  showGoogleMap?: boolean
  feature1Title?: string | null
  feature1Description?: string | null
  feature2Title?: string | null
  feature2Description?: string | null
  feature3Title?: string | null
  feature3Description?: string | null
  users?: Prisma.TenantUserCreateNestedManyWithoutTenantInput
  domains?: Prisma.DomainCreateNestedManyWithoutTenantInput
  theme?: Prisma.ThemeSettingCreateNestedOneWithoutTenantInput
  subscription?: Prisma.SubscriptionCreateNestedOneWithoutTenantInput
  auditLogs?: Prisma.AuditLogCreateNestedManyWithoutTenantInput
  products?: Prisma.ProductCreateNestedManyWithoutTenantInput
  services?: Prisma.ServiceCreateNestedManyWithoutTenantInput
  quoteRequests?: Prisma.QuoteRequestCreateNestedManyWithoutTenantInput
  productCategories?: Prisma.ProductCategoryCreateNestedManyWithoutTenantInput
  serviceCategories?: Prisma.ServiceCategoryCreateNestedManyWithoutTenantInput
  orders?: Prisma.OrderCreateNestedManyWithoutTenantInput
  deliveryZones?: Prisma.DeliveryZoneCreateNestedManyWithoutTenantInput
  blogPosts?: Prisma.BlogPostCreateNestedManyWithoutTenantInput
  siteBanners?: Prisma.SiteBannerCreateNestedManyWithoutTenantInput
}

export type TenantUncheckedCreateWithoutMediaAssetsInput = {
  id?: string
  name: string
  legalDocument: string
  slug: string
  email: string
  phone: string
  whatsapp?: string | null
  city: string
  state: string
  segment: string
  description?: string | null
  addressLine?: string | null
  postalCode?: string | null
  instagramUrl?: string | null
  facebookUrl?: string | null
  businessModel: $Enums.BusinessModel
  status?: $Enums.TenantStatus
  directoryOptIn?: boolean
  createdAt?: Date | string
  updatedAt?: Date | string
  deletedAt?: Date | string | null
  deliveryEnabled?: boolean
  deliveryPriceCents?: number
  showGoogleMap?: boolean
  feature1Title?: string | null
  feature1Description?: string | null
  feature2Title?: string | null
  feature2Description?: string | null
  feature3Title?: string | null
  feature3Description?: string | null
  users?: Prisma.TenantUserUncheckedCreateNestedManyWithoutTenantInput
  domains?: Prisma.DomainUncheckedCreateNestedManyWithoutTenantInput
  theme?: Prisma.ThemeSettingUncheckedCreateNestedOneWithoutTenantInput
  subscription?: Prisma.SubscriptionUncheckedCreateNestedOneWithoutTenantInput
  auditLogs?: Prisma.AuditLogUncheckedCreateNestedManyWithoutTenantInput
  products?: Prisma.ProductUncheckedCreateNestedManyWithoutTenantInput
  services?: Prisma.ServiceUncheckedCreateNestedManyWithoutTenantInput
  quoteRequests?: Prisma.QuoteRequestUncheckedCreateNestedManyWithoutTenantInput
  productCategories?: Prisma.ProductCategoryUncheckedCreateNestedManyWithoutTenantInput
  serviceCategories?: Prisma.ServiceCategoryUncheckedCreateNestedManyWithoutTenantInput
  orders?: Prisma.OrderUncheckedCreateNestedManyWithoutTenantInput
  deliveryZones?: Prisma.DeliveryZoneUncheckedCreateNestedManyWithoutTenantInput
  blogPosts?: Prisma.BlogPostUncheckedCreateNestedManyWithoutTenantInput
  siteBanners?: Prisma.SiteBannerUncheckedCreateNestedManyWithoutTenantInput
}

export type TenantCreateOrConnectWithoutMediaAssetsInput = {
  where: Prisma.TenantWhereUniqueInput
  create: Prisma.XOR<Prisma.TenantCreateWithoutMediaAssetsInput, Prisma.TenantUncheckedCreateWithoutMediaAssetsInput>
}

export type TenantUpsertWithoutMediaAssetsInput = {
  update: Prisma.XOR<Prisma.TenantUpdateWithoutMediaAssetsInput, Prisma.TenantUncheckedUpdateWithoutMediaAssetsInput>
  create: Prisma.XOR<Prisma.TenantCreateWithoutMediaAssetsInput, Prisma.TenantUncheckedCreateWithoutMediaAssetsInput>
  where?: Prisma.TenantWhereInput
}

export type TenantUpdateToOneWithWhereWithoutMediaAssetsInput = {
  where?: Prisma.TenantWhereInput
  data: Prisma.XOR<Prisma.TenantUpdateWithoutMediaAssetsInput, Prisma.TenantUncheckedUpdateWithoutMediaAssetsInput>
}

export type TenantUpdateWithoutMediaAssetsInput = {
  id?: Prisma.StringFieldUpdateOperationsInput | string
  name?: Prisma.StringFieldUpdateOperationsInput | string
  legalDocument?: Prisma.StringFieldUpdateOperationsInput | string
  slug?: Prisma.StringFieldUpdateOperationsInput | string
  email?: Prisma.StringFieldUpdateOperationsInput | string
  phone?: Prisma.StringFieldUpdateOperationsInput | string
  whatsapp?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  city?: Prisma.StringFieldUpdateOperationsInput | string
  state?: Prisma.StringFieldUpdateOperationsInput | string
  segment?: Prisma.StringFieldUpdateOperationsInput | string
  description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  addressLine?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  postalCode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  instagramUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  facebookUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  businessModel?: Prisma.EnumBusinessModelFieldUpdateOperationsInput | $Enums.BusinessModel
  status?: Prisma.EnumTenantStatusFieldUpdateOperationsInput | $Enums.TenantStatus
  directoryOptIn?: Prisma.BoolFieldUpdateOperationsInput | boolean
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  deliveryEnabled?: Prisma.BoolFieldUpdateOperationsInput | boolean
  deliveryPriceCents?: Prisma.IntFieldUpdateOperationsInput | number
  showGoogleMap?: Prisma.BoolFieldUpdateOperationsInput | boolean
  feature1Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature1Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  users?: Prisma.TenantUserUpdateManyWithoutTenantNestedInput
  domains?: Prisma.DomainUpdateManyWithoutTenantNestedInput
  theme?: Prisma.ThemeSettingUpdateOneWithoutTenantNestedInput
  subscription?: Prisma.SubscriptionUpdateOneWithoutTenantNestedInput
  auditLogs?: Prisma.AuditLogUpdateManyWithoutTenantNestedInput
  products?: Prisma.ProductUpdateManyWithoutTenantNestedInput
  services?: Prisma.ServiceUpdateManyWithoutTenantNestedInput
  quoteRequests?: Prisma.QuoteRequestUpdateManyWithoutTenantNestedInput
  productCategories?: Prisma.ProductCategoryUpdateManyWithoutTenantNestedInput
  serviceCategories?: Prisma.ServiceCategoryUpdateManyWithoutTenantNestedInput
  orders?: Prisma.OrderUpdateManyWithoutTenantNestedInput
  deliveryZones?: Prisma.DeliveryZoneUpdateManyWithoutTenantNestedInput
  blogPosts?: Prisma.BlogPostUpdateManyWithoutTenantNestedInput
  siteBanners?: Prisma.SiteBannerUpdateManyWithoutTenantNestedInput
}

export type TenantUncheckedUpdateWithoutMediaAssetsInput = {
  id?: Prisma.StringFieldUpdateOperationsInput | string
  name?: Prisma.StringFieldUpdateOperationsInput | string
  legalDocument?: Prisma.StringFieldUpdateOperationsInput | string
  slug?: Prisma.StringFieldUpdateOperationsInput | string
  email?: Prisma.StringFieldUpdateOperationsInput | string
  phone?: Prisma.StringFieldUpdateOperationsInput | string
  whatsapp?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  city?: Prisma.StringFieldUpdateOperationsInput | string
  state?: Prisma.StringFieldUpdateOperationsInput | string
  segment?: Prisma.StringFieldUpdateOperationsInput | string
  description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  addressLine?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  postalCode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  instagramUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  facebookUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  businessModel?: Prisma.EnumBusinessModelFieldUpdateOperationsInput | $Enums.BusinessModel
  status?: Prisma.EnumTenantStatusFieldUpdateOperationsInput | $Enums.TenantStatus
  directoryOptIn?: Prisma.BoolFieldUpdateOperationsInput | boolean
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  deliveryEnabled?: Prisma.BoolFieldUpdateOperationsInput | boolean
  deliveryPriceCents?: Prisma.IntFieldUpdateOperationsInput | number
  showGoogleMap?: Prisma.BoolFieldUpdateOperationsInput | boolean
  feature1Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature1Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  users?: Prisma.TenantUserUncheckedUpdateManyWithoutTenantNestedInput
  domains?: Prisma.DomainUncheckedUpdateManyWithoutTenantNestedInput
  theme?: Prisma.ThemeSettingUncheckedUpdateOneWithoutTenantNestedInput
  subscription?: Prisma.SubscriptionUncheckedUpdateOneWithoutTenantNestedInput
  auditLogs?: Prisma.AuditLogUncheckedUpdateManyWithoutTenantNestedInput
  products?: Prisma.ProductUncheckedUpdateManyWithoutTenantNestedInput
  services?: Prisma.ServiceUncheckedUpdateManyWithoutTenantNestedInput
  quoteRequests?: Prisma.QuoteRequestUncheckedUpdateManyWithoutTenantNestedInput
  productCategories?: Prisma.ProductCategoryUncheckedUpdateManyWithoutTenantNestedInput
  serviceCategories?: Prisma.ServiceCategoryUncheckedUpdateManyWithoutTenantNestedInput
  orders?: Prisma.OrderUncheckedUpdateManyWithoutTenantNestedInput
  deliveryZones?: Prisma.DeliveryZoneUncheckedUpdateManyWithoutTenantNestedInput
  blogPosts?: Prisma.BlogPostUncheckedUpdateManyWithoutTenantNestedInput
  siteBanners?: Prisma.SiteBannerUncheckedUpdateManyWithoutTenantNestedInput
}

export type TenantCreateWithoutUsersInput = {
  id?: string
  name: string
  legalDocument: string
  slug: string
  email: string
  phone: string
  whatsapp?: string | null
  city: string
  state: string
  segment: string
  description?: string | null
  addressLine?: string | null
  postalCode?: string | null
  instagramUrl?: string | null
  facebookUrl?: string | null
  businessModel: $Enums.BusinessModel
  status?: $Enums.TenantStatus
  directoryOptIn?: boolean
  createdAt?: Date | string
  updatedAt?: Date | string
  deletedAt?: Date | string | null
  deliveryEnabled?: boolean
  deliveryPriceCents?: number
  showGoogleMap?: boolean
  feature1Title?: string | null
  feature1Description?: string | null
  feature2Title?: string | null
  feature2Description?: string | null
  feature3Title?: string | null
  feature3Description?: string | null
  domains?: Prisma.DomainCreateNestedManyWithoutTenantInput
  theme?: Prisma.ThemeSettingCreateNestedOneWithoutTenantInput
  subscription?: Prisma.SubscriptionCreateNestedOneWithoutTenantInput
  auditLogs?: Prisma.AuditLogCreateNestedManyWithoutTenantInput
  products?: Prisma.ProductCreateNestedManyWithoutTenantInput
  services?: Prisma.ServiceCreateNestedManyWithoutTenantInput
  quoteRequests?: Prisma.QuoteRequestCreateNestedManyWithoutTenantInput
  productCategories?: Prisma.ProductCategoryCreateNestedManyWithoutTenantInput
  serviceCategories?: Prisma.ServiceCategoryCreateNestedManyWithoutTenantInput
  mediaAssets?: Prisma.MediaAssetCreateNestedManyWithoutTenantInput
  orders?: Prisma.OrderCreateNestedManyWithoutTenantInput
  deliveryZones?: Prisma.DeliveryZoneCreateNestedManyWithoutTenantInput
  blogPosts?: Prisma.BlogPostCreateNestedManyWithoutTenantInput
  siteBanners?: Prisma.SiteBannerCreateNestedManyWithoutTenantInput
}

export type TenantUncheckedCreateWithoutUsersInput = {
  id?: string
  name: string
  legalDocument: string
  slug: string
  email: string
  phone: string
  whatsapp?: string | null
  city: string
  state: string
  segment: string
  description?: string | null
  addressLine?: string | null
  postalCode?: string | null
  instagramUrl?: string | null
  facebookUrl?: string | null
  businessModel: $Enums.BusinessModel
  status?: $Enums.TenantStatus
  directoryOptIn?: boolean
  createdAt?: Date | string
  updatedAt?: Date | string
  deletedAt?: Date | string | null
  deliveryEnabled?: boolean
  deliveryPriceCents?: number
  showGoogleMap?: boolean
  feature1Title?: string | null
  feature1Description?: string | null
  feature2Title?: string | null
  feature2Description?: string | null
  feature3Title?: string | null
  feature3Description?: string | null
  domains?: Prisma.DomainUncheckedCreateNestedManyWithoutTenantInput
  theme?: Prisma.ThemeSettingUncheckedCreateNestedOneWithoutTenantInput
  subscription?: Prisma.SubscriptionUncheckedCreateNestedOneWithoutTenantInput
  auditLogs?: Prisma.AuditLogUncheckedCreateNestedManyWithoutTenantInput
  products?: Prisma.ProductUncheckedCreateNestedManyWithoutTenantInput
  services?: Prisma.ServiceUncheckedCreateNestedManyWithoutTenantInput
  quoteRequests?: Prisma.QuoteRequestUncheckedCreateNestedManyWithoutTenantInput
  productCategories?: Prisma.ProductCategoryUncheckedCreateNestedManyWithoutTenantInput
  serviceCategories?: Prisma.ServiceCategoryUncheckedCreateNestedManyWithoutTenantInput
  mediaAssets?: Prisma.MediaAssetUncheckedCreateNestedManyWithoutTenantInput
  orders?: Prisma.OrderUncheckedCreateNestedManyWithoutTenantInput
  deliveryZones?: Prisma.DeliveryZoneUncheckedCreateNestedManyWithoutTenantInput
  blogPosts?: Prisma.BlogPostUncheckedCreateNestedManyWithoutTenantInput
  siteBanners?: Prisma.SiteBannerUncheckedCreateNestedManyWithoutTenantInput
}

export type TenantCreateOrConnectWithoutUsersInput = {
  where: Prisma.TenantWhereUniqueInput
  create: Prisma.XOR<Prisma.TenantCreateWithoutUsersInput, Prisma.TenantUncheckedCreateWithoutUsersInput>
}

export type TenantUpsertWithoutUsersInput = {
  update: Prisma.XOR<Prisma.TenantUpdateWithoutUsersInput, Prisma.TenantUncheckedUpdateWithoutUsersInput>
  create: Prisma.XOR<Prisma.TenantCreateWithoutUsersInput, Prisma.TenantUncheckedCreateWithoutUsersInput>
  where?: Prisma.TenantWhereInput
}

export type TenantUpdateToOneWithWhereWithoutUsersInput = {
  where?: Prisma.TenantWhereInput
  data: Prisma.XOR<Prisma.TenantUpdateWithoutUsersInput, Prisma.TenantUncheckedUpdateWithoutUsersInput>
}

export type TenantUpdateWithoutUsersInput = {
  id?: Prisma.StringFieldUpdateOperationsInput | string
  name?: Prisma.StringFieldUpdateOperationsInput | string
  legalDocument?: Prisma.StringFieldUpdateOperationsInput | string
  slug?: Prisma.StringFieldUpdateOperationsInput | string
  email?: Prisma.StringFieldUpdateOperationsInput | string
  phone?: Prisma.StringFieldUpdateOperationsInput | string
  whatsapp?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  city?: Prisma.StringFieldUpdateOperationsInput | string
  state?: Prisma.StringFieldUpdateOperationsInput | string
  segment?: Prisma.StringFieldUpdateOperationsInput | string
  description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  addressLine?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  postalCode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  instagramUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  facebookUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  businessModel?: Prisma.EnumBusinessModelFieldUpdateOperationsInput | $Enums.BusinessModel
  status?: Prisma.EnumTenantStatusFieldUpdateOperationsInput | $Enums.TenantStatus
  directoryOptIn?: Prisma.BoolFieldUpdateOperationsInput | boolean
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  deliveryEnabled?: Prisma.BoolFieldUpdateOperationsInput | boolean
  deliveryPriceCents?: Prisma.IntFieldUpdateOperationsInput | number
  showGoogleMap?: Prisma.BoolFieldUpdateOperationsInput | boolean
  feature1Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature1Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  domains?: Prisma.DomainUpdateManyWithoutTenantNestedInput
  theme?: Prisma.ThemeSettingUpdateOneWithoutTenantNestedInput
  subscription?: Prisma.SubscriptionUpdateOneWithoutTenantNestedInput
  auditLogs?: Prisma.AuditLogUpdateManyWithoutTenantNestedInput
  products?: Prisma.ProductUpdateManyWithoutTenantNestedInput
  services?: Prisma.ServiceUpdateManyWithoutTenantNestedInput
  quoteRequests?: Prisma.QuoteRequestUpdateManyWithoutTenantNestedInput
  productCategories?: Prisma.ProductCategoryUpdateManyWithoutTenantNestedInput
  serviceCategories?: Prisma.ServiceCategoryUpdateManyWithoutTenantNestedInput
  mediaAssets?: Prisma.MediaAssetUpdateManyWithoutTenantNestedInput
  orders?: Prisma.OrderUpdateManyWithoutTenantNestedInput
  deliveryZones?: Prisma.DeliveryZoneUpdateManyWithoutTenantNestedInput
  blogPosts?: Prisma.BlogPostUpdateManyWithoutTenantNestedInput
  siteBanners?: Prisma.SiteBannerUpdateManyWithoutTenantNestedInput
}

export type TenantUncheckedUpdateWithoutUsersInput = {
  id?: Prisma.StringFieldUpdateOperationsInput | string
  name?: Prisma.StringFieldUpdateOperationsInput | string
  legalDocument?: Prisma.StringFieldUpdateOperationsInput | string
  slug?: Prisma.StringFieldUpdateOperationsInput | string
  email?: Prisma.StringFieldUpdateOperationsInput | string
  phone?: Prisma.StringFieldUpdateOperationsInput | string
  whatsapp?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  city?: Prisma.StringFieldUpdateOperationsInput | string
  state?: Prisma.StringFieldUpdateOperationsInput | string
  segment?: Prisma.StringFieldUpdateOperationsInput | string
  description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  addressLine?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  postalCode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  instagramUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  facebookUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  businessModel?: Prisma.EnumBusinessModelFieldUpdateOperationsInput | $Enums.BusinessModel
  status?: Prisma.EnumTenantStatusFieldUpdateOperationsInput | $Enums.TenantStatus
  directoryOptIn?: Prisma.BoolFieldUpdateOperationsInput | boolean
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  deliveryEnabled?: Prisma.BoolFieldUpdateOperationsInput | boolean
  deliveryPriceCents?: Prisma.IntFieldUpdateOperationsInput | number
  showGoogleMap?: Prisma.BoolFieldUpdateOperationsInput | boolean
  feature1Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature1Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  domains?: Prisma.DomainUncheckedUpdateManyWithoutTenantNestedInput
  theme?: Prisma.ThemeSettingUncheckedUpdateOneWithoutTenantNestedInput
  subscription?: Prisma.SubscriptionUncheckedUpdateOneWithoutTenantNestedInput
  auditLogs?: Prisma.AuditLogUncheckedUpdateManyWithoutTenantNestedInput
  products?: Prisma.ProductUncheckedUpdateManyWithoutTenantNestedInput
  services?: Prisma.ServiceUncheckedUpdateManyWithoutTenantNestedInput
  quoteRequests?: Prisma.QuoteRequestUncheckedUpdateManyWithoutTenantNestedInput
  productCategories?: Prisma.ProductCategoryUncheckedUpdateManyWithoutTenantNestedInput
  serviceCategories?: Prisma.ServiceCategoryUncheckedUpdateManyWithoutTenantNestedInput
  mediaAssets?: Prisma.MediaAssetUncheckedUpdateManyWithoutTenantNestedInput
  orders?: Prisma.OrderUncheckedUpdateManyWithoutTenantNestedInput
  deliveryZones?: Prisma.DeliveryZoneUncheckedUpdateManyWithoutTenantNestedInput
  blogPosts?: Prisma.BlogPostUncheckedUpdateManyWithoutTenantNestedInput
  siteBanners?: Prisma.SiteBannerUncheckedUpdateManyWithoutTenantNestedInput
}

export type TenantCreateWithoutSubscriptionInput = {
  id?: string
  name: string
  legalDocument: string
  slug: string
  email: string
  phone: string
  whatsapp?: string | null
  city: string
  state: string
  segment: string
  description?: string | null
  addressLine?: string | null
  postalCode?: string | null
  instagramUrl?: string | null
  facebookUrl?: string | null
  businessModel: $Enums.BusinessModel
  status?: $Enums.TenantStatus
  directoryOptIn?: boolean
  createdAt?: Date | string
  updatedAt?: Date | string
  deletedAt?: Date | string | null
  deliveryEnabled?: boolean
  deliveryPriceCents?: number
  showGoogleMap?: boolean
  feature1Title?: string | null
  feature1Description?: string | null
  feature2Title?: string | null
  feature2Description?: string | null
  feature3Title?: string | null
  feature3Description?: string | null
  users?: Prisma.TenantUserCreateNestedManyWithoutTenantInput
  domains?: Prisma.DomainCreateNestedManyWithoutTenantInput
  theme?: Prisma.ThemeSettingCreateNestedOneWithoutTenantInput
  auditLogs?: Prisma.AuditLogCreateNestedManyWithoutTenantInput
  products?: Prisma.ProductCreateNestedManyWithoutTenantInput
  services?: Prisma.ServiceCreateNestedManyWithoutTenantInput
  quoteRequests?: Prisma.QuoteRequestCreateNestedManyWithoutTenantInput
  productCategories?: Prisma.ProductCategoryCreateNestedManyWithoutTenantInput
  serviceCategories?: Prisma.ServiceCategoryCreateNestedManyWithoutTenantInput
  mediaAssets?: Prisma.MediaAssetCreateNestedManyWithoutTenantInput
  orders?: Prisma.OrderCreateNestedManyWithoutTenantInput
  deliveryZones?: Prisma.DeliveryZoneCreateNestedManyWithoutTenantInput
  blogPosts?: Prisma.BlogPostCreateNestedManyWithoutTenantInput
  siteBanners?: Prisma.SiteBannerCreateNestedManyWithoutTenantInput
}

export type TenantUncheckedCreateWithoutSubscriptionInput = {
  id?: string
  name: string
  legalDocument: string
  slug: string
  email: string
  phone: string
  whatsapp?: string | null
  city: string
  state: string
  segment: string
  description?: string | null
  addressLine?: string | null
  postalCode?: string | null
  instagramUrl?: string | null
  facebookUrl?: string | null
  businessModel: $Enums.BusinessModel
  status?: $Enums.TenantStatus
  directoryOptIn?: boolean
  createdAt?: Date | string
  updatedAt?: Date | string
  deletedAt?: Date | string | null
  deliveryEnabled?: boolean
  deliveryPriceCents?: number
  showGoogleMap?: boolean
  feature1Title?: string | null
  feature1Description?: string | null
  feature2Title?: string | null
  feature2Description?: string | null
  feature3Title?: string | null
  feature3Description?: string | null
  users?: Prisma.TenantUserUncheckedCreateNestedManyWithoutTenantInput
  domains?: Prisma.DomainUncheckedCreateNestedManyWithoutTenantInput
  theme?: Prisma.ThemeSettingUncheckedCreateNestedOneWithoutTenantInput
  auditLogs?: Prisma.AuditLogUncheckedCreateNestedManyWithoutTenantInput
  products?: Prisma.ProductUncheckedCreateNestedManyWithoutTenantInput
  services?: Prisma.ServiceUncheckedCreateNestedManyWithoutTenantInput
  quoteRequests?: Prisma.QuoteRequestUncheckedCreateNestedManyWithoutTenantInput
  productCategories?: Prisma.ProductCategoryUncheckedCreateNestedManyWithoutTenantInput
  serviceCategories?: Prisma.ServiceCategoryUncheckedCreateNestedManyWithoutTenantInput
  mediaAssets?: Prisma.MediaAssetUncheckedCreateNestedManyWithoutTenantInput
  orders?: Prisma.OrderUncheckedCreateNestedManyWithoutTenantInput
  deliveryZones?: Prisma.DeliveryZoneUncheckedCreateNestedManyWithoutTenantInput
  blogPosts?: Prisma.BlogPostUncheckedCreateNestedManyWithoutTenantInput
  siteBanners?: Prisma.SiteBannerUncheckedCreateNestedManyWithoutTenantInput
}

export type TenantCreateOrConnectWithoutSubscriptionInput = {
  where: Prisma.TenantWhereUniqueInput
  create: Prisma.XOR<Prisma.TenantCreateWithoutSubscriptionInput, Prisma.TenantUncheckedCreateWithoutSubscriptionInput>
}

export type TenantUpsertWithoutSubscriptionInput = {
  update: Prisma.XOR<Prisma.TenantUpdateWithoutSubscriptionInput, Prisma.TenantUncheckedUpdateWithoutSubscriptionInput>
  create: Prisma.XOR<Prisma.TenantCreateWithoutSubscriptionInput, Prisma.TenantUncheckedCreateWithoutSubscriptionInput>
  where?: Prisma.TenantWhereInput
}

export type TenantUpdateToOneWithWhereWithoutSubscriptionInput = {
  where?: Prisma.TenantWhereInput
  data: Prisma.XOR<Prisma.TenantUpdateWithoutSubscriptionInput, Prisma.TenantUncheckedUpdateWithoutSubscriptionInput>
}

export type TenantUpdateWithoutSubscriptionInput = {
  id?: Prisma.StringFieldUpdateOperationsInput | string
  name?: Prisma.StringFieldUpdateOperationsInput | string
  legalDocument?: Prisma.StringFieldUpdateOperationsInput | string
  slug?: Prisma.StringFieldUpdateOperationsInput | string
  email?: Prisma.StringFieldUpdateOperationsInput | string
  phone?: Prisma.StringFieldUpdateOperationsInput | string
  whatsapp?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  city?: Prisma.StringFieldUpdateOperationsInput | string
  state?: Prisma.StringFieldUpdateOperationsInput | string
  segment?: Prisma.StringFieldUpdateOperationsInput | string
  description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  addressLine?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  postalCode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  instagramUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  facebookUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  businessModel?: Prisma.EnumBusinessModelFieldUpdateOperationsInput | $Enums.BusinessModel
  status?: Prisma.EnumTenantStatusFieldUpdateOperationsInput | $Enums.TenantStatus
  directoryOptIn?: Prisma.BoolFieldUpdateOperationsInput | boolean
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  deliveryEnabled?: Prisma.BoolFieldUpdateOperationsInput | boolean
  deliveryPriceCents?: Prisma.IntFieldUpdateOperationsInput | number
  showGoogleMap?: Prisma.BoolFieldUpdateOperationsInput | boolean
  feature1Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature1Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  users?: Prisma.TenantUserUpdateManyWithoutTenantNestedInput
  domains?: Prisma.DomainUpdateManyWithoutTenantNestedInput
  theme?: Prisma.ThemeSettingUpdateOneWithoutTenantNestedInput
  auditLogs?: Prisma.AuditLogUpdateManyWithoutTenantNestedInput
  products?: Prisma.ProductUpdateManyWithoutTenantNestedInput
  services?: Prisma.ServiceUpdateManyWithoutTenantNestedInput
  quoteRequests?: Prisma.QuoteRequestUpdateManyWithoutTenantNestedInput
  productCategories?: Prisma.ProductCategoryUpdateManyWithoutTenantNestedInput
  serviceCategories?: Prisma.ServiceCategoryUpdateManyWithoutTenantNestedInput
  mediaAssets?: Prisma.MediaAssetUpdateManyWithoutTenantNestedInput
  orders?: Prisma.OrderUpdateManyWithoutTenantNestedInput
  deliveryZones?: Prisma.DeliveryZoneUpdateManyWithoutTenantNestedInput
  blogPosts?: Prisma.BlogPostUpdateManyWithoutTenantNestedInput
  siteBanners?: Prisma.SiteBannerUpdateManyWithoutTenantNestedInput
}

export type TenantUncheckedUpdateWithoutSubscriptionInput = {
  id?: Prisma.StringFieldUpdateOperationsInput | string
  name?: Prisma.StringFieldUpdateOperationsInput | string
  legalDocument?: Prisma.StringFieldUpdateOperationsInput | string
  slug?: Prisma.StringFieldUpdateOperationsInput | string
  email?: Prisma.StringFieldUpdateOperationsInput | string
  phone?: Prisma.StringFieldUpdateOperationsInput | string
  whatsapp?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  city?: Prisma.StringFieldUpdateOperationsInput | string
  state?: Prisma.StringFieldUpdateOperationsInput | string
  segment?: Prisma.StringFieldUpdateOperationsInput | string
  description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  addressLine?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  postalCode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  instagramUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  facebookUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  businessModel?: Prisma.EnumBusinessModelFieldUpdateOperationsInput | $Enums.BusinessModel
  status?: Prisma.EnumTenantStatusFieldUpdateOperationsInput | $Enums.TenantStatus
  directoryOptIn?: Prisma.BoolFieldUpdateOperationsInput | boolean
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  deliveryEnabled?: Prisma.BoolFieldUpdateOperationsInput | boolean
  deliveryPriceCents?: Prisma.IntFieldUpdateOperationsInput | number
  showGoogleMap?: Prisma.BoolFieldUpdateOperationsInput | boolean
  feature1Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature1Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  users?: Prisma.TenantUserUncheckedUpdateManyWithoutTenantNestedInput
  domains?: Prisma.DomainUncheckedUpdateManyWithoutTenantNestedInput
  theme?: Prisma.ThemeSettingUncheckedUpdateOneWithoutTenantNestedInput
  auditLogs?: Prisma.AuditLogUncheckedUpdateManyWithoutTenantNestedInput
  products?: Prisma.ProductUncheckedUpdateManyWithoutTenantNestedInput
  services?: Prisma.ServiceUncheckedUpdateManyWithoutTenantNestedInput
  quoteRequests?: Prisma.QuoteRequestUncheckedUpdateManyWithoutTenantNestedInput
  productCategories?: Prisma.ProductCategoryUncheckedUpdateManyWithoutTenantNestedInput
  serviceCategories?: Prisma.ServiceCategoryUncheckedUpdateManyWithoutTenantNestedInput
  mediaAssets?: Prisma.MediaAssetUncheckedUpdateManyWithoutTenantNestedInput
  orders?: Prisma.OrderUncheckedUpdateManyWithoutTenantNestedInput
  deliveryZones?: Prisma.DeliveryZoneUncheckedUpdateManyWithoutTenantNestedInput
  blogPosts?: Prisma.BlogPostUncheckedUpdateManyWithoutTenantNestedInput
  siteBanners?: Prisma.SiteBannerUncheckedUpdateManyWithoutTenantNestedInput
}

export type TenantCreateWithoutDomainsInput = {
  id?: string
  name: string
  legalDocument: string
  slug: string
  email: string
  phone: string
  whatsapp?: string | null
  city: string
  state: string
  segment: string
  description?: string | null
  addressLine?: string | null
  postalCode?: string | null
  instagramUrl?: string | null
  facebookUrl?: string | null
  businessModel: $Enums.BusinessModel
  status?: $Enums.TenantStatus
  directoryOptIn?: boolean
  createdAt?: Date | string
  updatedAt?: Date | string
  deletedAt?: Date | string | null
  deliveryEnabled?: boolean
  deliveryPriceCents?: number
  showGoogleMap?: boolean
  feature1Title?: string | null
  feature1Description?: string | null
  feature2Title?: string | null
  feature2Description?: string | null
  feature3Title?: string | null
  feature3Description?: string | null
  users?: Prisma.TenantUserCreateNestedManyWithoutTenantInput
  theme?: Prisma.ThemeSettingCreateNestedOneWithoutTenantInput
  subscription?: Prisma.SubscriptionCreateNestedOneWithoutTenantInput
  auditLogs?: Prisma.AuditLogCreateNestedManyWithoutTenantInput
  products?: Prisma.ProductCreateNestedManyWithoutTenantInput
  services?: Prisma.ServiceCreateNestedManyWithoutTenantInput
  quoteRequests?: Prisma.QuoteRequestCreateNestedManyWithoutTenantInput
  productCategories?: Prisma.ProductCategoryCreateNestedManyWithoutTenantInput
  serviceCategories?: Prisma.ServiceCategoryCreateNestedManyWithoutTenantInput
  mediaAssets?: Prisma.MediaAssetCreateNestedManyWithoutTenantInput
  orders?: Prisma.OrderCreateNestedManyWithoutTenantInput
  deliveryZones?: Prisma.DeliveryZoneCreateNestedManyWithoutTenantInput
  blogPosts?: Prisma.BlogPostCreateNestedManyWithoutTenantInput
  siteBanners?: Prisma.SiteBannerCreateNestedManyWithoutTenantInput
}

export type TenantUncheckedCreateWithoutDomainsInput = {
  id?: string
  name: string
  legalDocument: string
  slug: string
  email: string
  phone: string
  whatsapp?: string | null
  city: string
  state: string
  segment: string
  description?: string | null
  addressLine?: string | null
  postalCode?: string | null
  instagramUrl?: string | null
  facebookUrl?: string | null
  businessModel: $Enums.BusinessModel
  status?: $Enums.TenantStatus
  directoryOptIn?: boolean
  createdAt?: Date | string
  updatedAt?: Date | string
  deletedAt?: Date | string | null
  deliveryEnabled?: boolean
  deliveryPriceCents?: number
  showGoogleMap?: boolean
  feature1Title?: string | null
  feature1Description?: string | null
  feature2Title?: string | null
  feature2Description?: string | null
  feature3Title?: string | null
  feature3Description?: string | null
  users?: Prisma.TenantUserUncheckedCreateNestedManyWithoutTenantInput
  theme?: Prisma.ThemeSettingUncheckedCreateNestedOneWithoutTenantInput
  subscription?: Prisma.SubscriptionUncheckedCreateNestedOneWithoutTenantInput
  auditLogs?: Prisma.AuditLogUncheckedCreateNestedManyWithoutTenantInput
  products?: Prisma.ProductUncheckedCreateNestedManyWithoutTenantInput
  services?: Prisma.ServiceUncheckedCreateNestedManyWithoutTenantInput
  quoteRequests?: Prisma.QuoteRequestUncheckedCreateNestedManyWithoutTenantInput
  productCategories?: Prisma.ProductCategoryUncheckedCreateNestedManyWithoutTenantInput
  serviceCategories?: Prisma.ServiceCategoryUncheckedCreateNestedManyWithoutTenantInput
  mediaAssets?: Prisma.MediaAssetUncheckedCreateNestedManyWithoutTenantInput
  orders?: Prisma.OrderUncheckedCreateNestedManyWithoutTenantInput
  deliveryZones?: Prisma.DeliveryZoneUncheckedCreateNestedManyWithoutTenantInput
  blogPosts?: Prisma.BlogPostUncheckedCreateNestedManyWithoutTenantInput
  siteBanners?: Prisma.SiteBannerUncheckedCreateNestedManyWithoutTenantInput
}

export type TenantCreateOrConnectWithoutDomainsInput = {
  where: Prisma.TenantWhereUniqueInput
  create: Prisma.XOR<Prisma.TenantCreateWithoutDomainsInput, Prisma.TenantUncheckedCreateWithoutDomainsInput>
}

export type TenantUpsertWithoutDomainsInput = {
  update: Prisma.XOR<Prisma.TenantUpdateWithoutDomainsInput, Prisma.TenantUncheckedUpdateWithoutDomainsInput>
  create: Prisma.XOR<Prisma.TenantCreateWithoutDomainsInput, Prisma.TenantUncheckedCreateWithoutDomainsInput>
  where?: Prisma.TenantWhereInput
}

export type TenantUpdateToOneWithWhereWithoutDomainsInput = {
  where?: Prisma.TenantWhereInput
  data: Prisma.XOR<Prisma.TenantUpdateWithoutDomainsInput, Prisma.TenantUncheckedUpdateWithoutDomainsInput>
}

export type TenantUpdateWithoutDomainsInput = {
  id?: Prisma.StringFieldUpdateOperationsInput | string
  name?: Prisma.StringFieldUpdateOperationsInput | string
  legalDocument?: Prisma.StringFieldUpdateOperationsInput | string
  slug?: Prisma.StringFieldUpdateOperationsInput | string
  email?: Prisma.StringFieldUpdateOperationsInput | string
  phone?: Prisma.StringFieldUpdateOperationsInput | string
  whatsapp?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  city?: Prisma.StringFieldUpdateOperationsInput | string
  state?: Prisma.StringFieldUpdateOperationsInput | string
  segment?: Prisma.StringFieldUpdateOperationsInput | string
  description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  addressLine?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  postalCode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  instagramUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  facebookUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  businessModel?: Prisma.EnumBusinessModelFieldUpdateOperationsInput | $Enums.BusinessModel
  status?: Prisma.EnumTenantStatusFieldUpdateOperationsInput | $Enums.TenantStatus
  directoryOptIn?: Prisma.BoolFieldUpdateOperationsInput | boolean
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  deliveryEnabled?: Prisma.BoolFieldUpdateOperationsInput | boolean
  deliveryPriceCents?: Prisma.IntFieldUpdateOperationsInput | number
  showGoogleMap?: Prisma.BoolFieldUpdateOperationsInput | boolean
  feature1Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature1Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  users?: Prisma.TenantUserUpdateManyWithoutTenantNestedInput
  theme?: Prisma.ThemeSettingUpdateOneWithoutTenantNestedInput
  subscription?: Prisma.SubscriptionUpdateOneWithoutTenantNestedInput
  auditLogs?: Prisma.AuditLogUpdateManyWithoutTenantNestedInput
  products?: Prisma.ProductUpdateManyWithoutTenantNestedInput
  services?: Prisma.ServiceUpdateManyWithoutTenantNestedInput
  quoteRequests?: Prisma.QuoteRequestUpdateManyWithoutTenantNestedInput
  productCategories?: Prisma.ProductCategoryUpdateManyWithoutTenantNestedInput
  serviceCategories?: Prisma.ServiceCategoryUpdateManyWithoutTenantNestedInput
  mediaAssets?: Prisma.MediaAssetUpdateManyWithoutTenantNestedInput
  orders?: Prisma.OrderUpdateManyWithoutTenantNestedInput
  deliveryZones?: Prisma.DeliveryZoneUpdateManyWithoutTenantNestedInput
  blogPosts?: Prisma.BlogPostUpdateManyWithoutTenantNestedInput
  siteBanners?: Prisma.SiteBannerUpdateManyWithoutTenantNestedInput
}

export type TenantUncheckedUpdateWithoutDomainsInput = {
  id?: Prisma.StringFieldUpdateOperationsInput | string
  name?: Prisma.StringFieldUpdateOperationsInput | string
  legalDocument?: Prisma.StringFieldUpdateOperationsInput | string
  slug?: Prisma.StringFieldUpdateOperationsInput | string
  email?: Prisma.StringFieldUpdateOperationsInput | string
  phone?: Prisma.StringFieldUpdateOperationsInput | string
  whatsapp?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  city?: Prisma.StringFieldUpdateOperationsInput | string
  state?: Prisma.StringFieldUpdateOperationsInput | string
  segment?: Prisma.StringFieldUpdateOperationsInput | string
  description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  addressLine?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  postalCode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  instagramUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  facebookUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  businessModel?: Prisma.EnumBusinessModelFieldUpdateOperationsInput | $Enums.BusinessModel
  status?: Prisma.EnumTenantStatusFieldUpdateOperationsInput | $Enums.TenantStatus
  directoryOptIn?: Prisma.BoolFieldUpdateOperationsInput | boolean
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  deliveryEnabled?: Prisma.BoolFieldUpdateOperationsInput | boolean
  deliveryPriceCents?: Prisma.IntFieldUpdateOperationsInput | number
  showGoogleMap?: Prisma.BoolFieldUpdateOperationsInput | boolean
  feature1Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature1Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  users?: Prisma.TenantUserUncheckedUpdateManyWithoutTenantNestedInput
  theme?: Prisma.ThemeSettingUncheckedUpdateOneWithoutTenantNestedInput
  subscription?: Prisma.SubscriptionUncheckedUpdateOneWithoutTenantNestedInput
  auditLogs?: Prisma.AuditLogUncheckedUpdateManyWithoutTenantNestedInput
  products?: Prisma.ProductUncheckedUpdateManyWithoutTenantNestedInput
  services?: Prisma.ServiceUncheckedUpdateManyWithoutTenantNestedInput
  quoteRequests?: Prisma.QuoteRequestUncheckedUpdateManyWithoutTenantNestedInput
  productCategories?: Prisma.ProductCategoryUncheckedUpdateManyWithoutTenantNestedInput
  serviceCategories?: Prisma.ServiceCategoryUncheckedUpdateManyWithoutTenantNestedInput
  mediaAssets?: Prisma.MediaAssetUncheckedUpdateManyWithoutTenantNestedInput
  orders?: Prisma.OrderUncheckedUpdateManyWithoutTenantNestedInput
  deliveryZones?: Prisma.DeliveryZoneUncheckedUpdateManyWithoutTenantNestedInput
  blogPosts?: Prisma.BlogPostUncheckedUpdateManyWithoutTenantNestedInput
  siteBanners?: Prisma.SiteBannerUncheckedUpdateManyWithoutTenantNestedInput
}

export type TenantCreateWithoutThemeInput = {
  id?: string
  name: string
  legalDocument: string
  slug: string
  email: string
  phone: string
  whatsapp?: string | null
  city: string
  state: string
  segment: string
  description?: string | null
  addressLine?: string | null
  postalCode?: string | null
  instagramUrl?: string | null
  facebookUrl?: string | null
  businessModel: $Enums.BusinessModel
  status?: $Enums.TenantStatus
  directoryOptIn?: boolean
  createdAt?: Date | string
  updatedAt?: Date | string
  deletedAt?: Date | string | null
  deliveryEnabled?: boolean
  deliveryPriceCents?: number
  showGoogleMap?: boolean
  feature1Title?: string | null
  feature1Description?: string | null
  feature2Title?: string | null
  feature2Description?: string | null
  feature3Title?: string | null
  feature3Description?: string | null
  users?: Prisma.TenantUserCreateNestedManyWithoutTenantInput
  domains?: Prisma.DomainCreateNestedManyWithoutTenantInput
  subscription?: Prisma.SubscriptionCreateNestedOneWithoutTenantInput
  auditLogs?: Prisma.AuditLogCreateNestedManyWithoutTenantInput
  products?: Prisma.ProductCreateNestedManyWithoutTenantInput
  services?: Prisma.ServiceCreateNestedManyWithoutTenantInput
  quoteRequests?: Prisma.QuoteRequestCreateNestedManyWithoutTenantInput
  productCategories?: Prisma.ProductCategoryCreateNestedManyWithoutTenantInput
  serviceCategories?: Prisma.ServiceCategoryCreateNestedManyWithoutTenantInput
  mediaAssets?: Prisma.MediaAssetCreateNestedManyWithoutTenantInput
  orders?: Prisma.OrderCreateNestedManyWithoutTenantInput
  deliveryZones?: Prisma.DeliveryZoneCreateNestedManyWithoutTenantInput
  blogPosts?: Prisma.BlogPostCreateNestedManyWithoutTenantInput
  siteBanners?: Prisma.SiteBannerCreateNestedManyWithoutTenantInput
}

export type TenantUncheckedCreateWithoutThemeInput = {
  id?: string
  name: string
  legalDocument: string
  slug: string
  email: string
  phone: string
  whatsapp?: string | null
  city: string
  state: string
  segment: string
  description?: string | null
  addressLine?: string | null
  postalCode?: string | null
  instagramUrl?: string | null
  facebookUrl?: string | null
  businessModel: $Enums.BusinessModel
  status?: $Enums.TenantStatus
  directoryOptIn?: boolean
  createdAt?: Date | string
  updatedAt?: Date | string
  deletedAt?: Date | string | null
  deliveryEnabled?: boolean
  deliveryPriceCents?: number
  showGoogleMap?: boolean
  feature1Title?: string | null
  feature1Description?: string | null
  feature2Title?: string | null
  feature2Description?: string | null
  feature3Title?: string | null
  feature3Description?: string | null
  users?: Prisma.TenantUserUncheckedCreateNestedManyWithoutTenantInput
  domains?: Prisma.DomainUncheckedCreateNestedManyWithoutTenantInput
  subscription?: Prisma.SubscriptionUncheckedCreateNestedOneWithoutTenantInput
  auditLogs?: Prisma.AuditLogUncheckedCreateNestedManyWithoutTenantInput
  products?: Prisma.ProductUncheckedCreateNestedManyWithoutTenantInput
  services?: Prisma.ServiceUncheckedCreateNestedManyWithoutTenantInput
  quoteRequests?: Prisma.QuoteRequestUncheckedCreateNestedManyWithoutTenantInput
  productCategories?: Prisma.ProductCategoryUncheckedCreateNestedManyWithoutTenantInput
  serviceCategories?: Prisma.ServiceCategoryUncheckedCreateNestedManyWithoutTenantInput
  mediaAssets?: Prisma.MediaAssetUncheckedCreateNestedManyWithoutTenantInput
  orders?: Prisma.OrderUncheckedCreateNestedManyWithoutTenantInput
  deliveryZones?: Prisma.DeliveryZoneUncheckedCreateNestedManyWithoutTenantInput
  blogPosts?: Prisma.BlogPostUncheckedCreateNestedManyWithoutTenantInput
  siteBanners?: Prisma.SiteBannerUncheckedCreateNestedManyWithoutTenantInput
}

export type TenantCreateOrConnectWithoutThemeInput = {
  where: Prisma.TenantWhereUniqueInput
  create: Prisma.XOR<Prisma.TenantCreateWithoutThemeInput, Prisma.TenantUncheckedCreateWithoutThemeInput>
}

export type TenantUpsertWithoutThemeInput = {
  update: Prisma.XOR<Prisma.TenantUpdateWithoutThemeInput, Prisma.TenantUncheckedUpdateWithoutThemeInput>
  create: Prisma.XOR<Prisma.TenantCreateWithoutThemeInput, Prisma.TenantUncheckedCreateWithoutThemeInput>
  where?: Prisma.TenantWhereInput
}

export type TenantUpdateToOneWithWhereWithoutThemeInput = {
  where?: Prisma.TenantWhereInput
  data: Prisma.XOR<Prisma.TenantUpdateWithoutThemeInput, Prisma.TenantUncheckedUpdateWithoutThemeInput>
}

export type TenantUpdateWithoutThemeInput = {
  id?: Prisma.StringFieldUpdateOperationsInput | string
  name?: Prisma.StringFieldUpdateOperationsInput | string
  legalDocument?: Prisma.StringFieldUpdateOperationsInput | string
  slug?: Prisma.StringFieldUpdateOperationsInput | string
  email?: Prisma.StringFieldUpdateOperationsInput | string
  phone?: Prisma.StringFieldUpdateOperationsInput | string
  whatsapp?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  city?: Prisma.StringFieldUpdateOperationsInput | string
  state?: Prisma.StringFieldUpdateOperationsInput | string
  segment?: Prisma.StringFieldUpdateOperationsInput | string
  description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  addressLine?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  postalCode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  instagramUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  facebookUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  businessModel?: Prisma.EnumBusinessModelFieldUpdateOperationsInput | $Enums.BusinessModel
  status?: Prisma.EnumTenantStatusFieldUpdateOperationsInput | $Enums.TenantStatus
  directoryOptIn?: Prisma.BoolFieldUpdateOperationsInput | boolean
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  deliveryEnabled?: Prisma.BoolFieldUpdateOperationsInput | boolean
  deliveryPriceCents?: Prisma.IntFieldUpdateOperationsInput | number
  showGoogleMap?: Prisma.BoolFieldUpdateOperationsInput | boolean
  feature1Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature1Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  users?: Prisma.TenantUserUpdateManyWithoutTenantNestedInput
  domains?: Prisma.DomainUpdateManyWithoutTenantNestedInput
  subscription?: Prisma.SubscriptionUpdateOneWithoutTenantNestedInput
  auditLogs?: Prisma.AuditLogUpdateManyWithoutTenantNestedInput
  products?: Prisma.ProductUpdateManyWithoutTenantNestedInput
  services?: Prisma.ServiceUpdateManyWithoutTenantNestedInput
  quoteRequests?: Prisma.QuoteRequestUpdateManyWithoutTenantNestedInput
  productCategories?: Prisma.ProductCategoryUpdateManyWithoutTenantNestedInput
  serviceCategories?: Prisma.ServiceCategoryUpdateManyWithoutTenantNestedInput
  mediaAssets?: Prisma.MediaAssetUpdateManyWithoutTenantNestedInput
  orders?: Prisma.OrderUpdateManyWithoutTenantNestedInput
  deliveryZones?: Prisma.DeliveryZoneUpdateManyWithoutTenantNestedInput
  blogPosts?: Prisma.BlogPostUpdateManyWithoutTenantNestedInput
  siteBanners?: Prisma.SiteBannerUpdateManyWithoutTenantNestedInput
}

export type TenantUncheckedUpdateWithoutThemeInput = {
  id?: Prisma.StringFieldUpdateOperationsInput | string
  name?: Prisma.StringFieldUpdateOperationsInput | string
  legalDocument?: Prisma.StringFieldUpdateOperationsInput | string
  slug?: Prisma.StringFieldUpdateOperationsInput | string
  email?: Prisma.StringFieldUpdateOperationsInput | string
  phone?: Prisma.StringFieldUpdateOperationsInput | string
  whatsapp?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  city?: Prisma.StringFieldUpdateOperationsInput | string
  state?: Prisma.StringFieldUpdateOperationsInput | string
  segment?: Prisma.StringFieldUpdateOperationsInput | string
  description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  addressLine?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  postalCode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  instagramUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  facebookUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  businessModel?: Prisma.EnumBusinessModelFieldUpdateOperationsInput | $Enums.BusinessModel
  status?: Prisma.EnumTenantStatusFieldUpdateOperationsInput | $Enums.TenantStatus
  directoryOptIn?: Prisma.BoolFieldUpdateOperationsInput | boolean
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  deliveryEnabled?: Prisma.BoolFieldUpdateOperationsInput | boolean
  deliveryPriceCents?: Prisma.IntFieldUpdateOperationsInput | number
  showGoogleMap?: Prisma.BoolFieldUpdateOperationsInput | boolean
  feature1Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature1Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  users?: Prisma.TenantUserUncheckedUpdateManyWithoutTenantNestedInput
  domains?: Prisma.DomainUncheckedUpdateManyWithoutTenantNestedInput
  subscription?: Prisma.SubscriptionUncheckedUpdateOneWithoutTenantNestedInput
  auditLogs?: Prisma.AuditLogUncheckedUpdateManyWithoutTenantNestedInput
  products?: Prisma.ProductUncheckedUpdateManyWithoutTenantNestedInput
  services?: Prisma.ServiceUncheckedUpdateManyWithoutTenantNestedInput
  quoteRequests?: Prisma.QuoteRequestUncheckedUpdateManyWithoutTenantNestedInput
  productCategories?: Prisma.ProductCategoryUncheckedUpdateManyWithoutTenantNestedInput
  serviceCategories?: Prisma.ServiceCategoryUncheckedUpdateManyWithoutTenantNestedInput
  mediaAssets?: Prisma.MediaAssetUncheckedUpdateManyWithoutTenantNestedInput
  orders?: Prisma.OrderUncheckedUpdateManyWithoutTenantNestedInput
  deliveryZones?: Prisma.DeliveryZoneUncheckedUpdateManyWithoutTenantNestedInput
  blogPosts?: Prisma.BlogPostUncheckedUpdateManyWithoutTenantNestedInput
  siteBanners?: Prisma.SiteBannerUncheckedUpdateManyWithoutTenantNestedInput
}

export type TenantCreateWithoutSiteBannersInput = {
  id?: string
  name: string
  legalDocument: string
  slug: string
  email: string
  phone: string
  whatsapp?: string | null
  city: string
  state: string
  segment: string
  description?: string | null
  addressLine?: string | null
  postalCode?: string | null
  instagramUrl?: string | null
  facebookUrl?: string | null
  businessModel: $Enums.BusinessModel
  status?: $Enums.TenantStatus
  directoryOptIn?: boolean
  createdAt?: Date | string
  updatedAt?: Date | string
  deletedAt?: Date | string | null
  deliveryEnabled?: boolean
  deliveryPriceCents?: number
  showGoogleMap?: boolean
  feature1Title?: string | null
  feature1Description?: string | null
  feature2Title?: string | null
  feature2Description?: string | null
  feature3Title?: string | null
  feature3Description?: string | null
  users?: Prisma.TenantUserCreateNestedManyWithoutTenantInput
  domains?: Prisma.DomainCreateNestedManyWithoutTenantInput
  theme?: Prisma.ThemeSettingCreateNestedOneWithoutTenantInput
  subscription?: Prisma.SubscriptionCreateNestedOneWithoutTenantInput
  auditLogs?: Prisma.AuditLogCreateNestedManyWithoutTenantInput
  products?: Prisma.ProductCreateNestedManyWithoutTenantInput
  services?: Prisma.ServiceCreateNestedManyWithoutTenantInput
  quoteRequests?: Prisma.QuoteRequestCreateNestedManyWithoutTenantInput
  productCategories?: Prisma.ProductCategoryCreateNestedManyWithoutTenantInput
  serviceCategories?: Prisma.ServiceCategoryCreateNestedManyWithoutTenantInput
  mediaAssets?: Prisma.MediaAssetCreateNestedManyWithoutTenantInput
  orders?: Prisma.OrderCreateNestedManyWithoutTenantInput
  deliveryZones?: Prisma.DeliveryZoneCreateNestedManyWithoutTenantInput
  blogPosts?: Prisma.BlogPostCreateNestedManyWithoutTenantInput
}

export type TenantUncheckedCreateWithoutSiteBannersInput = {
  id?: string
  name: string
  legalDocument: string
  slug: string
  email: string
  phone: string
  whatsapp?: string | null
  city: string
  state: string
  segment: string
  description?: string | null
  addressLine?: string | null
  postalCode?: string | null
  instagramUrl?: string | null
  facebookUrl?: string | null
  businessModel: $Enums.BusinessModel
  status?: $Enums.TenantStatus
  directoryOptIn?: boolean
  createdAt?: Date | string
  updatedAt?: Date | string
  deletedAt?: Date | string | null
  deliveryEnabled?: boolean
  deliveryPriceCents?: number
  showGoogleMap?: boolean
  feature1Title?: string | null
  feature1Description?: string | null
  feature2Title?: string | null
  feature2Description?: string | null
  feature3Title?: string | null
  feature3Description?: string | null
  users?: Prisma.TenantUserUncheckedCreateNestedManyWithoutTenantInput
  domains?: Prisma.DomainUncheckedCreateNestedManyWithoutTenantInput
  theme?: Prisma.ThemeSettingUncheckedCreateNestedOneWithoutTenantInput
  subscription?: Prisma.SubscriptionUncheckedCreateNestedOneWithoutTenantInput
  auditLogs?: Prisma.AuditLogUncheckedCreateNestedManyWithoutTenantInput
  products?: Prisma.ProductUncheckedCreateNestedManyWithoutTenantInput
  services?: Prisma.ServiceUncheckedCreateNestedManyWithoutTenantInput
  quoteRequests?: Prisma.QuoteRequestUncheckedCreateNestedManyWithoutTenantInput
  productCategories?: Prisma.ProductCategoryUncheckedCreateNestedManyWithoutTenantInput
  serviceCategories?: Prisma.ServiceCategoryUncheckedCreateNestedManyWithoutTenantInput
  mediaAssets?: Prisma.MediaAssetUncheckedCreateNestedManyWithoutTenantInput
  orders?: Prisma.OrderUncheckedCreateNestedManyWithoutTenantInput
  deliveryZones?: Prisma.DeliveryZoneUncheckedCreateNestedManyWithoutTenantInput
  blogPosts?: Prisma.BlogPostUncheckedCreateNestedManyWithoutTenantInput
}

export type TenantCreateOrConnectWithoutSiteBannersInput = {
  where: Prisma.TenantWhereUniqueInput
  create: Prisma.XOR<Prisma.TenantCreateWithoutSiteBannersInput, Prisma.TenantUncheckedCreateWithoutSiteBannersInput>
}

export type TenantUpsertWithoutSiteBannersInput = {
  update: Prisma.XOR<Prisma.TenantUpdateWithoutSiteBannersInput, Prisma.TenantUncheckedUpdateWithoutSiteBannersInput>
  create: Prisma.XOR<Prisma.TenantCreateWithoutSiteBannersInput, Prisma.TenantUncheckedCreateWithoutSiteBannersInput>
  where?: Prisma.TenantWhereInput
}

export type TenantUpdateToOneWithWhereWithoutSiteBannersInput = {
  where?: Prisma.TenantWhereInput
  data: Prisma.XOR<Prisma.TenantUpdateWithoutSiteBannersInput, Prisma.TenantUncheckedUpdateWithoutSiteBannersInput>
}

export type TenantUpdateWithoutSiteBannersInput = {
  id?: Prisma.StringFieldUpdateOperationsInput | string
  name?: Prisma.StringFieldUpdateOperationsInput | string
  legalDocument?: Prisma.StringFieldUpdateOperationsInput | string
  slug?: Prisma.StringFieldUpdateOperationsInput | string
  email?: Prisma.StringFieldUpdateOperationsInput | string
  phone?: Prisma.StringFieldUpdateOperationsInput | string
  whatsapp?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  city?: Prisma.StringFieldUpdateOperationsInput | string
  state?: Prisma.StringFieldUpdateOperationsInput | string
  segment?: Prisma.StringFieldUpdateOperationsInput | string
  description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  addressLine?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  postalCode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  instagramUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  facebookUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  businessModel?: Prisma.EnumBusinessModelFieldUpdateOperationsInput | $Enums.BusinessModel
  status?: Prisma.EnumTenantStatusFieldUpdateOperationsInput | $Enums.TenantStatus
  directoryOptIn?: Prisma.BoolFieldUpdateOperationsInput | boolean
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  deliveryEnabled?: Prisma.BoolFieldUpdateOperationsInput | boolean
  deliveryPriceCents?: Prisma.IntFieldUpdateOperationsInput | number
  showGoogleMap?: Prisma.BoolFieldUpdateOperationsInput | boolean
  feature1Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature1Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  users?: Prisma.TenantUserUpdateManyWithoutTenantNestedInput
  domains?: Prisma.DomainUpdateManyWithoutTenantNestedInput
  theme?: Prisma.ThemeSettingUpdateOneWithoutTenantNestedInput
  subscription?: Prisma.SubscriptionUpdateOneWithoutTenantNestedInput
  auditLogs?: Prisma.AuditLogUpdateManyWithoutTenantNestedInput
  products?: Prisma.ProductUpdateManyWithoutTenantNestedInput
  services?: Prisma.ServiceUpdateManyWithoutTenantNestedInput
  quoteRequests?: Prisma.QuoteRequestUpdateManyWithoutTenantNestedInput
  productCategories?: Prisma.ProductCategoryUpdateManyWithoutTenantNestedInput
  serviceCategories?: Prisma.ServiceCategoryUpdateManyWithoutTenantNestedInput
  mediaAssets?: Prisma.MediaAssetUpdateManyWithoutTenantNestedInput
  orders?: Prisma.OrderUpdateManyWithoutTenantNestedInput
  deliveryZones?: Prisma.DeliveryZoneUpdateManyWithoutTenantNestedInput
  blogPosts?: Prisma.BlogPostUpdateManyWithoutTenantNestedInput
}

export type TenantUncheckedUpdateWithoutSiteBannersInput = {
  id?: Prisma.StringFieldUpdateOperationsInput | string
  name?: Prisma.StringFieldUpdateOperationsInput | string
  legalDocument?: Prisma.StringFieldUpdateOperationsInput | string
  slug?: Prisma.StringFieldUpdateOperationsInput | string
  email?: Prisma.StringFieldUpdateOperationsInput | string
  phone?: Prisma.StringFieldUpdateOperationsInput | string
  whatsapp?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  city?: Prisma.StringFieldUpdateOperationsInput | string
  state?: Prisma.StringFieldUpdateOperationsInput | string
  segment?: Prisma.StringFieldUpdateOperationsInput | string
  description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  addressLine?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  postalCode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  instagramUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  facebookUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  businessModel?: Prisma.EnumBusinessModelFieldUpdateOperationsInput | $Enums.BusinessModel
  status?: Prisma.EnumTenantStatusFieldUpdateOperationsInput | $Enums.TenantStatus
  directoryOptIn?: Prisma.BoolFieldUpdateOperationsInput | boolean
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  deliveryEnabled?: Prisma.BoolFieldUpdateOperationsInput | boolean
  deliveryPriceCents?: Prisma.IntFieldUpdateOperationsInput | number
  showGoogleMap?: Prisma.BoolFieldUpdateOperationsInput | boolean
  feature1Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature1Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  users?: Prisma.TenantUserUncheckedUpdateManyWithoutTenantNestedInput
  domains?: Prisma.DomainUncheckedUpdateManyWithoutTenantNestedInput
  theme?: Prisma.ThemeSettingUncheckedUpdateOneWithoutTenantNestedInput
  subscription?: Prisma.SubscriptionUncheckedUpdateOneWithoutTenantNestedInput
  auditLogs?: Prisma.AuditLogUncheckedUpdateManyWithoutTenantNestedInput
  products?: Prisma.ProductUncheckedUpdateManyWithoutTenantNestedInput
  services?: Prisma.ServiceUncheckedUpdateManyWithoutTenantNestedInput
  quoteRequests?: Prisma.QuoteRequestUncheckedUpdateManyWithoutTenantNestedInput
  productCategories?: Prisma.ProductCategoryUncheckedUpdateManyWithoutTenantNestedInput
  serviceCategories?: Prisma.ServiceCategoryUncheckedUpdateManyWithoutTenantNestedInput
  mediaAssets?: Prisma.MediaAssetUncheckedUpdateManyWithoutTenantNestedInput
  orders?: Prisma.OrderUncheckedUpdateManyWithoutTenantNestedInput
  deliveryZones?: Prisma.DeliveryZoneUncheckedUpdateManyWithoutTenantNestedInput
  blogPosts?: Prisma.BlogPostUncheckedUpdateManyWithoutTenantNestedInput
}

export type TenantCreateWithoutProductsInput = {
  id?: string
  name: string
  legalDocument: string
  slug: string
  email: string
  phone: string
  whatsapp?: string | null
  city: string
  state: string
  segment: string
  description?: string | null
  addressLine?: string | null
  postalCode?: string | null
  instagramUrl?: string | null
  facebookUrl?: string | null
  businessModel: $Enums.BusinessModel
  status?: $Enums.TenantStatus
  directoryOptIn?: boolean
  createdAt?: Date | string
  updatedAt?: Date | string
  deletedAt?: Date | string | null
  deliveryEnabled?: boolean
  deliveryPriceCents?: number
  showGoogleMap?: boolean
  feature1Title?: string | null
  feature1Description?: string | null
  feature2Title?: string | null
  feature2Description?: string | null
  feature3Title?: string | null
  feature3Description?: string | null
  users?: Prisma.TenantUserCreateNestedManyWithoutTenantInput
  domains?: Prisma.DomainCreateNestedManyWithoutTenantInput
  theme?: Prisma.ThemeSettingCreateNestedOneWithoutTenantInput
  subscription?: Prisma.SubscriptionCreateNestedOneWithoutTenantInput
  auditLogs?: Prisma.AuditLogCreateNestedManyWithoutTenantInput
  services?: Prisma.ServiceCreateNestedManyWithoutTenantInput
  quoteRequests?: Prisma.QuoteRequestCreateNestedManyWithoutTenantInput
  productCategories?: Prisma.ProductCategoryCreateNestedManyWithoutTenantInput
  serviceCategories?: Prisma.ServiceCategoryCreateNestedManyWithoutTenantInput
  mediaAssets?: Prisma.MediaAssetCreateNestedManyWithoutTenantInput
  orders?: Prisma.OrderCreateNestedManyWithoutTenantInput
  deliveryZones?: Prisma.DeliveryZoneCreateNestedManyWithoutTenantInput
  blogPosts?: Prisma.BlogPostCreateNestedManyWithoutTenantInput
  siteBanners?: Prisma.SiteBannerCreateNestedManyWithoutTenantInput
}

export type TenantUncheckedCreateWithoutProductsInput = {
  id?: string
  name: string
  legalDocument: string
  slug: string
  email: string
  phone: string
  whatsapp?: string | null
  city: string
  state: string
  segment: string
  description?: string | null
  addressLine?: string | null
  postalCode?: string | null
  instagramUrl?: string | null
  facebookUrl?: string | null
  businessModel: $Enums.BusinessModel
  status?: $Enums.TenantStatus
  directoryOptIn?: boolean
  createdAt?: Date | string
  updatedAt?: Date | string
  deletedAt?: Date | string | null
  deliveryEnabled?: boolean
  deliveryPriceCents?: number
  showGoogleMap?: boolean
  feature1Title?: string | null
  feature1Description?: string | null
  feature2Title?: string | null
  feature2Description?: string | null
  feature3Title?: string | null
  feature3Description?: string | null
  users?: Prisma.TenantUserUncheckedCreateNestedManyWithoutTenantInput
  domains?: Prisma.DomainUncheckedCreateNestedManyWithoutTenantInput
  theme?: Prisma.ThemeSettingUncheckedCreateNestedOneWithoutTenantInput
  subscription?: Prisma.SubscriptionUncheckedCreateNestedOneWithoutTenantInput
  auditLogs?: Prisma.AuditLogUncheckedCreateNestedManyWithoutTenantInput
  services?: Prisma.ServiceUncheckedCreateNestedManyWithoutTenantInput
  quoteRequests?: Prisma.QuoteRequestUncheckedCreateNestedManyWithoutTenantInput
  productCategories?: Prisma.ProductCategoryUncheckedCreateNestedManyWithoutTenantInput
  serviceCategories?: Prisma.ServiceCategoryUncheckedCreateNestedManyWithoutTenantInput
  mediaAssets?: Prisma.MediaAssetUncheckedCreateNestedManyWithoutTenantInput
  orders?: Prisma.OrderUncheckedCreateNestedManyWithoutTenantInput
  deliveryZones?: Prisma.DeliveryZoneUncheckedCreateNestedManyWithoutTenantInput
  blogPosts?: Prisma.BlogPostUncheckedCreateNestedManyWithoutTenantInput
  siteBanners?: Prisma.SiteBannerUncheckedCreateNestedManyWithoutTenantInput
}

export type TenantCreateOrConnectWithoutProductsInput = {
  where: Prisma.TenantWhereUniqueInput
  create: Prisma.XOR<Prisma.TenantCreateWithoutProductsInput, Prisma.TenantUncheckedCreateWithoutProductsInput>
}

export type TenantUpsertWithoutProductsInput = {
  update: Prisma.XOR<Prisma.TenantUpdateWithoutProductsInput, Prisma.TenantUncheckedUpdateWithoutProductsInput>
  create: Prisma.XOR<Prisma.TenantCreateWithoutProductsInput, Prisma.TenantUncheckedCreateWithoutProductsInput>
  where?: Prisma.TenantWhereInput
}

export type TenantUpdateToOneWithWhereWithoutProductsInput = {
  where?: Prisma.TenantWhereInput
  data: Prisma.XOR<Prisma.TenantUpdateWithoutProductsInput, Prisma.TenantUncheckedUpdateWithoutProductsInput>
}

export type TenantUpdateWithoutProductsInput = {
  id?: Prisma.StringFieldUpdateOperationsInput | string
  name?: Prisma.StringFieldUpdateOperationsInput | string
  legalDocument?: Prisma.StringFieldUpdateOperationsInput | string
  slug?: Prisma.StringFieldUpdateOperationsInput | string
  email?: Prisma.StringFieldUpdateOperationsInput | string
  phone?: Prisma.StringFieldUpdateOperationsInput | string
  whatsapp?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  city?: Prisma.StringFieldUpdateOperationsInput | string
  state?: Prisma.StringFieldUpdateOperationsInput | string
  segment?: Prisma.StringFieldUpdateOperationsInput | string
  description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  addressLine?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  postalCode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  instagramUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  facebookUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  businessModel?: Prisma.EnumBusinessModelFieldUpdateOperationsInput | $Enums.BusinessModel
  status?: Prisma.EnumTenantStatusFieldUpdateOperationsInput | $Enums.TenantStatus
  directoryOptIn?: Prisma.BoolFieldUpdateOperationsInput | boolean
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  deliveryEnabled?: Prisma.BoolFieldUpdateOperationsInput | boolean
  deliveryPriceCents?: Prisma.IntFieldUpdateOperationsInput | number
  showGoogleMap?: Prisma.BoolFieldUpdateOperationsInput | boolean
  feature1Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature1Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  users?: Prisma.TenantUserUpdateManyWithoutTenantNestedInput
  domains?: Prisma.DomainUpdateManyWithoutTenantNestedInput
  theme?: Prisma.ThemeSettingUpdateOneWithoutTenantNestedInput
  subscription?: Prisma.SubscriptionUpdateOneWithoutTenantNestedInput
  auditLogs?: Prisma.AuditLogUpdateManyWithoutTenantNestedInput
  services?: Prisma.ServiceUpdateManyWithoutTenantNestedInput
  quoteRequests?: Prisma.QuoteRequestUpdateManyWithoutTenantNestedInput
  productCategories?: Prisma.ProductCategoryUpdateManyWithoutTenantNestedInput
  serviceCategories?: Prisma.ServiceCategoryUpdateManyWithoutTenantNestedInput
  mediaAssets?: Prisma.MediaAssetUpdateManyWithoutTenantNestedInput
  orders?: Prisma.OrderUpdateManyWithoutTenantNestedInput
  deliveryZones?: Prisma.DeliveryZoneUpdateManyWithoutTenantNestedInput
  blogPosts?: Prisma.BlogPostUpdateManyWithoutTenantNestedInput
  siteBanners?: Prisma.SiteBannerUpdateManyWithoutTenantNestedInput
}

export type TenantUncheckedUpdateWithoutProductsInput = {
  id?: Prisma.StringFieldUpdateOperationsInput | string
  name?: Prisma.StringFieldUpdateOperationsInput | string
  legalDocument?: Prisma.StringFieldUpdateOperationsInput | string
  slug?: Prisma.StringFieldUpdateOperationsInput | string
  email?: Prisma.StringFieldUpdateOperationsInput | string
  phone?: Prisma.StringFieldUpdateOperationsInput | string
  whatsapp?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  city?: Prisma.StringFieldUpdateOperationsInput | string
  state?: Prisma.StringFieldUpdateOperationsInput | string
  segment?: Prisma.StringFieldUpdateOperationsInput | string
  description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  addressLine?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  postalCode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  instagramUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  facebookUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  businessModel?: Prisma.EnumBusinessModelFieldUpdateOperationsInput | $Enums.BusinessModel
  status?: Prisma.EnumTenantStatusFieldUpdateOperationsInput | $Enums.TenantStatus
  directoryOptIn?: Prisma.BoolFieldUpdateOperationsInput | boolean
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  deliveryEnabled?: Prisma.BoolFieldUpdateOperationsInput | boolean
  deliveryPriceCents?: Prisma.IntFieldUpdateOperationsInput | number
  showGoogleMap?: Prisma.BoolFieldUpdateOperationsInput | boolean
  feature1Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature1Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  users?: Prisma.TenantUserUncheckedUpdateManyWithoutTenantNestedInput
  domains?: Prisma.DomainUncheckedUpdateManyWithoutTenantNestedInput
  theme?: Prisma.ThemeSettingUncheckedUpdateOneWithoutTenantNestedInput
  subscription?: Prisma.SubscriptionUncheckedUpdateOneWithoutTenantNestedInput
  auditLogs?: Prisma.AuditLogUncheckedUpdateManyWithoutTenantNestedInput
  services?: Prisma.ServiceUncheckedUpdateManyWithoutTenantNestedInput
  quoteRequests?: Prisma.QuoteRequestUncheckedUpdateManyWithoutTenantNestedInput
  productCategories?: Prisma.ProductCategoryUncheckedUpdateManyWithoutTenantNestedInput
  serviceCategories?: Prisma.ServiceCategoryUncheckedUpdateManyWithoutTenantNestedInput
  mediaAssets?: Prisma.MediaAssetUncheckedUpdateManyWithoutTenantNestedInput
  orders?: Prisma.OrderUncheckedUpdateManyWithoutTenantNestedInput
  deliveryZones?: Prisma.DeliveryZoneUncheckedUpdateManyWithoutTenantNestedInput
  blogPosts?: Prisma.BlogPostUncheckedUpdateManyWithoutTenantNestedInput
  siteBanners?: Prisma.SiteBannerUncheckedUpdateManyWithoutTenantNestedInput
}

export type TenantCreateWithoutProductCategoriesInput = {
  id?: string
  name: string
  legalDocument: string
  slug: string
  email: string
  phone: string
  whatsapp?: string | null
  city: string
  state: string
  segment: string
  description?: string | null
  addressLine?: string | null
  postalCode?: string | null
  instagramUrl?: string | null
  facebookUrl?: string | null
  businessModel: $Enums.BusinessModel
  status?: $Enums.TenantStatus
  directoryOptIn?: boolean
  createdAt?: Date | string
  updatedAt?: Date | string
  deletedAt?: Date | string | null
  deliveryEnabled?: boolean
  deliveryPriceCents?: number
  showGoogleMap?: boolean
  feature1Title?: string | null
  feature1Description?: string | null
  feature2Title?: string | null
  feature2Description?: string | null
  feature3Title?: string | null
  feature3Description?: string | null
  users?: Prisma.TenantUserCreateNestedManyWithoutTenantInput
  domains?: Prisma.DomainCreateNestedManyWithoutTenantInput
  theme?: Prisma.ThemeSettingCreateNestedOneWithoutTenantInput
  subscription?: Prisma.SubscriptionCreateNestedOneWithoutTenantInput
  auditLogs?: Prisma.AuditLogCreateNestedManyWithoutTenantInput
  products?: Prisma.ProductCreateNestedManyWithoutTenantInput
  services?: Prisma.ServiceCreateNestedManyWithoutTenantInput
  quoteRequests?: Prisma.QuoteRequestCreateNestedManyWithoutTenantInput
  serviceCategories?: Prisma.ServiceCategoryCreateNestedManyWithoutTenantInput
  mediaAssets?: Prisma.MediaAssetCreateNestedManyWithoutTenantInput
  orders?: Prisma.OrderCreateNestedManyWithoutTenantInput
  deliveryZones?: Prisma.DeliveryZoneCreateNestedManyWithoutTenantInput
  blogPosts?: Prisma.BlogPostCreateNestedManyWithoutTenantInput
  siteBanners?: Prisma.SiteBannerCreateNestedManyWithoutTenantInput
}

export type TenantUncheckedCreateWithoutProductCategoriesInput = {
  id?: string
  name: string
  legalDocument: string
  slug: string
  email: string
  phone: string
  whatsapp?: string | null
  city: string
  state: string
  segment: string
  description?: string | null
  addressLine?: string | null
  postalCode?: string | null
  instagramUrl?: string | null
  facebookUrl?: string | null
  businessModel: $Enums.BusinessModel
  status?: $Enums.TenantStatus
  directoryOptIn?: boolean
  createdAt?: Date | string
  updatedAt?: Date | string
  deletedAt?: Date | string | null
  deliveryEnabled?: boolean
  deliveryPriceCents?: number
  showGoogleMap?: boolean
  feature1Title?: string | null
  feature1Description?: string | null
  feature2Title?: string | null
  feature2Description?: string | null
  feature3Title?: string | null
  feature3Description?: string | null
  users?: Prisma.TenantUserUncheckedCreateNestedManyWithoutTenantInput
  domains?: Prisma.DomainUncheckedCreateNestedManyWithoutTenantInput
  theme?: Prisma.ThemeSettingUncheckedCreateNestedOneWithoutTenantInput
  subscription?: Prisma.SubscriptionUncheckedCreateNestedOneWithoutTenantInput
  auditLogs?: Prisma.AuditLogUncheckedCreateNestedManyWithoutTenantInput
  products?: Prisma.ProductUncheckedCreateNestedManyWithoutTenantInput
  services?: Prisma.ServiceUncheckedCreateNestedManyWithoutTenantInput
  quoteRequests?: Prisma.QuoteRequestUncheckedCreateNestedManyWithoutTenantInput
  serviceCategories?: Prisma.ServiceCategoryUncheckedCreateNestedManyWithoutTenantInput
  mediaAssets?: Prisma.MediaAssetUncheckedCreateNestedManyWithoutTenantInput
  orders?: Prisma.OrderUncheckedCreateNestedManyWithoutTenantInput
  deliveryZones?: Prisma.DeliveryZoneUncheckedCreateNestedManyWithoutTenantInput
  blogPosts?: Prisma.BlogPostUncheckedCreateNestedManyWithoutTenantInput
  siteBanners?: Prisma.SiteBannerUncheckedCreateNestedManyWithoutTenantInput
}

export type TenantCreateOrConnectWithoutProductCategoriesInput = {
  where: Prisma.TenantWhereUniqueInput
  create: Prisma.XOR<Prisma.TenantCreateWithoutProductCategoriesInput, Prisma.TenantUncheckedCreateWithoutProductCategoriesInput>
}

export type TenantUpsertWithoutProductCategoriesInput = {
  update: Prisma.XOR<Prisma.TenantUpdateWithoutProductCategoriesInput, Prisma.TenantUncheckedUpdateWithoutProductCategoriesInput>
  create: Prisma.XOR<Prisma.TenantCreateWithoutProductCategoriesInput, Prisma.TenantUncheckedCreateWithoutProductCategoriesInput>
  where?: Prisma.TenantWhereInput
}

export type TenantUpdateToOneWithWhereWithoutProductCategoriesInput = {
  where?: Prisma.TenantWhereInput
  data: Prisma.XOR<Prisma.TenantUpdateWithoutProductCategoriesInput, Prisma.TenantUncheckedUpdateWithoutProductCategoriesInput>
}

export type TenantUpdateWithoutProductCategoriesInput = {
  id?: Prisma.StringFieldUpdateOperationsInput | string
  name?: Prisma.StringFieldUpdateOperationsInput | string
  legalDocument?: Prisma.StringFieldUpdateOperationsInput | string
  slug?: Prisma.StringFieldUpdateOperationsInput | string
  email?: Prisma.StringFieldUpdateOperationsInput | string
  phone?: Prisma.StringFieldUpdateOperationsInput | string
  whatsapp?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  city?: Prisma.StringFieldUpdateOperationsInput | string
  state?: Prisma.StringFieldUpdateOperationsInput | string
  segment?: Prisma.StringFieldUpdateOperationsInput | string
  description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  addressLine?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  postalCode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  instagramUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  facebookUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  businessModel?: Prisma.EnumBusinessModelFieldUpdateOperationsInput | $Enums.BusinessModel
  status?: Prisma.EnumTenantStatusFieldUpdateOperationsInput | $Enums.TenantStatus
  directoryOptIn?: Prisma.BoolFieldUpdateOperationsInput | boolean
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  deliveryEnabled?: Prisma.BoolFieldUpdateOperationsInput | boolean
  deliveryPriceCents?: Prisma.IntFieldUpdateOperationsInput | number
  showGoogleMap?: Prisma.BoolFieldUpdateOperationsInput | boolean
  feature1Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature1Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  users?: Prisma.TenantUserUpdateManyWithoutTenantNestedInput
  domains?: Prisma.DomainUpdateManyWithoutTenantNestedInput
  theme?: Prisma.ThemeSettingUpdateOneWithoutTenantNestedInput
  subscription?: Prisma.SubscriptionUpdateOneWithoutTenantNestedInput
  auditLogs?: Prisma.AuditLogUpdateManyWithoutTenantNestedInput
  products?: Prisma.ProductUpdateManyWithoutTenantNestedInput
  services?: Prisma.ServiceUpdateManyWithoutTenantNestedInput
  quoteRequests?: Prisma.QuoteRequestUpdateManyWithoutTenantNestedInput
  serviceCategories?: Prisma.ServiceCategoryUpdateManyWithoutTenantNestedInput
  mediaAssets?: Prisma.MediaAssetUpdateManyWithoutTenantNestedInput
  orders?: Prisma.OrderUpdateManyWithoutTenantNestedInput
  deliveryZones?: Prisma.DeliveryZoneUpdateManyWithoutTenantNestedInput
  blogPosts?: Prisma.BlogPostUpdateManyWithoutTenantNestedInput
  siteBanners?: Prisma.SiteBannerUpdateManyWithoutTenantNestedInput
}

export type TenantUncheckedUpdateWithoutProductCategoriesInput = {
  id?: Prisma.StringFieldUpdateOperationsInput | string
  name?: Prisma.StringFieldUpdateOperationsInput | string
  legalDocument?: Prisma.StringFieldUpdateOperationsInput | string
  slug?: Prisma.StringFieldUpdateOperationsInput | string
  email?: Prisma.StringFieldUpdateOperationsInput | string
  phone?: Prisma.StringFieldUpdateOperationsInput | string
  whatsapp?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  city?: Prisma.StringFieldUpdateOperationsInput | string
  state?: Prisma.StringFieldUpdateOperationsInput | string
  segment?: Prisma.StringFieldUpdateOperationsInput | string
  description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  addressLine?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  postalCode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  instagramUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  facebookUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  businessModel?: Prisma.EnumBusinessModelFieldUpdateOperationsInput | $Enums.BusinessModel
  status?: Prisma.EnumTenantStatusFieldUpdateOperationsInput | $Enums.TenantStatus
  directoryOptIn?: Prisma.BoolFieldUpdateOperationsInput | boolean
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  deliveryEnabled?: Prisma.BoolFieldUpdateOperationsInput | boolean
  deliveryPriceCents?: Prisma.IntFieldUpdateOperationsInput | number
  showGoogleMap?: Prisma.BoolFieldUpdateOperationsInput | boolean
  feature1Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature1Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  users?: Prisma.TenantUserUncheckedUpdateManyWithoutTenantNestedInput
  domains?: Prisma.DomainUncheckedUpdateManyWithoutTenantNestedInput
  theme?: Prisma.ThemeSettingUncheckedUpdateOneWithoutTenantNestedInput
  subscription?: Prisma.SubscriptionUncheckedUpdateOneWithoutTenantNestedInput
  auditLogs?: Prisma.AuditLogUncheckedUpdateManyWithoutTenantNestedInput
  products?: Prisma.ProductUncheckedUpdateManyWithoutTenantNestedInput
  services?: Prisma.ServiceUncheckedUpdateManyWithoutTenantNestedInput
  quoteRequests?: Prisma.QuoteRequestUncheckedUpdateManyWithoutTenantNestedInput
  serviceCategories?: Prisma.ServiceCategoryUncheckedUpdateManyWithoutTenantNestedInput
  mediaAssets?: Prisma.MediaAssetUncheckedUpdateManyWithoutTenantNestedInput
  orders?: Prisma.OrderUncheckedUpdateManyWithoutTenantNestedInput
  deliveryZones?: Prisma.DeliveryZoneUncheckedUpdateManyWithoutTenantNestedInput
  blogPosts?: Prisma.BlogPostUncheckedUpdateManyWithoutTenantNestedInput
  siteBanners?: Prisma.SiteBannerUncheckedUpdateManyWithoutTenantNestedInput
}

export type TenantCreateWithoutServicesInput = {
  id?: string
  name: string
  legalDocument: string
  slug: string
  email: string
  phone: string
  whatsapp?: string | null
  city: string
  state: string
  segment: string
  description?: string | null
  addressLine?: string | null
  postalCode?: string | null
  instagramUrl?: string | null
  facebookUrl?: string | null
  businessModel: $Enums.BusinessModel
  status?: $Enums.TenantStatus
  directoryOptIn?: boolean
  createdAt?: Date | string
  updatedAt?: Date | string
  deletedAt?: Date | string | null
  deliveryEnabled?: boolean
  deliveryPriceCents?: number
  showGoogleMap?: boolean
  feature1Title?: string | null
  feature1Description?: string | null
  feature2Title?: string | null
  feature2Description?: string | null
  feature3Title?: string | null
  feature3Description?: string | null
  users?: Prisma.TenantUserCreateNestedManyWithoutTenantInput
  domains?: Prisma.DomainCreateNestedManyWithoutTenantInput
  theme?: Prisma.ThemeSettingCreateNestedOneWithoutTenantInput
  subscription?: Prisma.SubscriptionCreateNestedOneWithoutTenantInput
  auditLogs?: Prisma.AuditLogCreateNestedManyWithoutTenantInput
  products?: Prisma.ProductCreateNestedManyWithoutTenantInput
  quoteRequests?: Prisma.QuoteRequestCreateNestedManyWithoutTenantInput
  productCategories?: Prisma.ProductCategoryCreateNestedManyWithoutTenantInput
  serviceCategories?: Prisma.ServiceCategoryCreateNestedManyWithoutTenantInput
  mediaAssets?: Prisma.MediaAssetCreateNestedManyWithoutTenantInput
  orders?: Prisma.OrderCreateNestedManyWithoutTenantInput
  deliveryZones?: Prisma.DeliveryZoneCreateNestedManyWithoutTenantInput
  blogPosts?: Prisma.BlogPostCreateNestedManyWithoutTenantInput
  siteBanners?: Prisma.SiteBannerCreateNestedManyWithoutTenantInput
}

export type TenantUncheckedCreateWithoutServicesInput = {
  id?: string
  name: string
  legalDocument: string
  slug: string
  email: string
  phone: string
  whatsapp?: string | null
  city: string
  state: string
  segment: string
  description?: string | null
  addressLine?: string | null
  postalCode?: string | null
  instagramUrl?: string | null
  facebookUrl?: string | null
  businessModel: $Enums.BusinessModel
  status?: $Enums.TenantStatus
  directoryOptIn?: boolean
  createdAt?: Date | string
  updatedAt?: Date | string
  deletedAt?: Date | string | null
  deliveryEnabled?: boolean
  deliveryPriceCents?: number
  showGoogleMap?: boolean
  feature1Title?: string | null
  feature1Description?: string | null
  feature2Title?: string | null
  feature2Description?: string | null
  feature3Title?: string | null
  feature3Description?: string | null
  users?: Prisma.TenantUserUncheckedCreateNestedManyWithoutTenantInput
  domains?: Prisma.DomainUncheckedCreateNestedManyWithoutTenantInput
  theme?: Prisma.ThemeSettingUncheckedCreateNestedOneWithoutTenantInput
  subscription?: Prisma.SubscriptionUncheckedCreateNestedOneWithoutTenantInput
  auditLogs?: Prisma.AuditLogUncheckedCreateNestedManyWithoutTenantInput
  products?: Prisma.ProductUncheckedCreateNestedManyWithoutTenantInput
  quoteRequests?: Prisma.QuoteRequestUncheckedCreateNestedManyWithoutTenantInput
  productCategories?: Prisma.ProductCategoryUncheckedCreateNestedManyWithoutTenantInput
  serviceCategories?: Prisma.ServiceCategoryUncheckedCreateNestedManyWithoutTenantInput
  mediaAssets?: Prisma.MediaAssetUncheckedCreateNestedManyWithoutTenantInput
  orders?: Prisma.OrderUncheckedCreateNestedManyWithoutTenantInput
  deliveryZones?: Prisma.DeliveryZoneUncheckedCreateNestedManyWithoutTenantInput
  blogPosts?: Prisma.BlogPostUncheckedCreateNestedManyWithoutTenantInput
  siteBanners?: Prisma.SiteBannerUncheckedCreateNestedManyWithoutTenantInput
}

export type TenantCreateOrConnectWithoutServicesInput = {
  where: Prisma.TenantWhereUniqueInput
  create: Prisma.XOR<Prisma.TenantCreateWithoutServicesInput, Prisma.TenantUncheckedCreateWithoutServicesInput>
}

export type TenantUpsertWithoutServicesInput = {
  update: Prisma.XOR<Prisma.TenantUpdateWithoutServicesInput, Prisma.TenantUncheckedUpdateWithoutServicesInput>
  create: Prisma.XOR<Prisma.TenantCreateWithoutServicesInput, Prisma.TenantUncheckedCreateWithoutServicesInput>
  where?: Prisma.TenantWhereInput
}

export type TenantUpdateToOneWithWhereWithoutServicesInput = {
  where?: Prisma.TenantWhereInput
  data: Prisma.XOR<Prisma.TenantUpdateWithoutServicesInput, Prisma.TenantUncheckedUpdateWithoutServicesInput>
}

export type TenantUpdateWithoutServicesInput = {
  id?: Prisma.StringFieldUpdateOperationsInput | string
  name?: Prisma.StringFieldUpdateOperationsInput | string
  legalDocument?: Prisma.StringFieldUpdateOperationsInput | string
  slug?: Prisma.StringFieldUpdateOperationsInput | string
  email?: Prisma.StringFieldUpdateOperationsInput | string
  phone?: Prisma.StringFieldUpdateOperationsInput | string
  whatsapp?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  city?: Prisma.StringFieldUpdateOperationsInput | string
  state?: Prisma.StringFieldUpdateOperationsInput | string
  segment?: Prisma.StringFieldUpdateOperationsInput | string
  description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  addressLine?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  postalCode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  instagramUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  facebookUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  businessModel?: Prisma.EnumBusinessModelFieldUpdateOperationsInput | $Enums.BusinessModel
  status?: Prisma.EnumTenantStatusFieldUpdateOperationsInput | $Enums.TenantStatus
  directoryOptIn?: Prisma.BoolFieldUpdateOperationsInput | boolean
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  deliveryEnabled?: Prisma.BoolFieldUpdateOperationsInput | boolean
  deliveryPriceCents?: Prisma.IntFieldUpdateOperationsInput | number
  showGoogleMap?: Prisma.BoolFieldUpdateOperationsInput | boolean
  feature1Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature1Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  users?: Prisma.TenantUserUpdateManyWithoutTenantNestedInput
  domains?: Prisma.DomainUpdateManyWithoutTenantNestedInput
  theme?: Prisma.ThemeSettingUpdateOneWithoutTenantNestedInput
  subscription?: Prisma.SubscriptionUpdateOneWithoutTenantNestedInput
  auditLogs?: Prisma.AuditLogUpdateManyWithoutTenantNestedInput
  products?: Prisma.ProductUpdateManyWithoutTenantNestedInput
  quoteRequests?: Prisma.QuoteRequestUpdateManyWithoutTenantNestedInput
  productCategories?: Prisma.ProductCategoryUpdateManyWithoutTenantNestedInput
  serviceCategories?: Prisma.ServiceCategoryUpdateManyWithoutTenantNestedInput
  mediaAssets?: Prisma.MediaAssetUpdateManyWithoutTenantNestedInput
  orders?: Prisma.OrderUpdateManyWithoutTenantNestedInput
  deliveryZones?: Prisma.DeliveryZoneUpdateManyWithoutTenantNestedInput
  blogPosts?: Prisma.BlogPostUpdateManyWithoutTenantNestedInput
  siteBanners?: Prisma.SiteBannerUpdateManyWithoutTenantNestedInput
}

export type TenantUncheckedUpdateWithoutServicesInput = {
  id?: Prisma.StringFieldUpdateOperationsInput | string
  name?: Prisma.StringFieldUpdateOperationsInput | string
  legalDocument?: Prisma.StringFieldUpdateOperationsInput | string
  slug?: Prisma.StringFieldUpdateOperationsInput | string
  email?: Prisma.StringFieldUpdateOperationsInput | string
  phone?: Prisma.StringFieldUpdateOperationsInput | string
  whatsapp?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  city?: Prisma.StringFieldUpdateOperationsInput | string
  state?: Prisma.StringFieldUpdateOperationsInput | string
  segment?: Prisma.StringFieldUpdateOperationsInput | string
  description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  addressLine?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  postalCode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  instagramUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  facebookUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  businessModel?: Prisma.EnumBusinessModelFieldUpdateOperationsInput | $Enums.BusinessModel
  status?: Prisma.EnumTenantStatusFieldUpdateOperationsInput | $Enums.TenantStatus
  directoryOptIn?: Prisma.BoolFieldUpdateOperationsInput | boolean
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  deliveryEnabled?: Prisma.BoolFieldUpdateOperationsInput | boolean
  deliveryPriceCents?: Prisma.IntFieldUpdateOperationsInput | number
  showGoogleMap?: Prisma.BoolFieldUpdateOperationsInput | boolean
  feature1Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature1Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  users?: Prisma.TenantUserUncheckedUpdateManyWithoutTenantNestedInput
  domains?: Prisma.DomainUncheckedUpdateManyWithoutTenantNestedInput
  theme?: Prisma.ThemeSettingUncheckedUpdateOneWithoutTenantNestedInput
  subscription?: Prisma.SubscriptionUncheckedUpdateOneWithoutTenantNestedInput
  auditLogs?: Prisma.AuditLogUncheckedUpdateManyWithoutTenantNestedInput
  products?: Prisma.ProductUncheckedUpdateManyWithoutTenantNestedInput
  quoteRequests?: Prisma.QuoteRequestUncheckedUpdateManyWithoutTenantNestedInput
  productCategories?: Prisma.ProductCategoryUncheckedUpdateManyWithoutTenantNestedInput
  serviceCategories?: Prisma.ServiceCategoryUncheckedUpdateManyWithoutTenantNestedInput
  mediaAssets?: Prisma.MediaAssetUncheckedUpdateManyWithoutTenantNestedInput
  orders?: Prisma.OrderUncheckedUpdateManyWithoutTenantNestedInput
  deliveryZones?: Prisma.DeliveryZoneUncheckedUpdateManyWithoutTenantNestedInput
  blogPosts?: Prisma.BlogPostUncheckedUpdateManyWithoutTenantNestedInput
  siteBanners?: Prisma.SiteBannerUncheckedUpdateManyWithoutTenantNestedInput
}

export type TenantCreateWithoutServiceCategoriesInput = {
  id?: string
  name: string
  legalDocument: string
  slug: string
  email: string
  phone: string
  whatsapp?: string | null
  city: string
  state: string
  segment: string
  description?: string | null
  addressLine?: string | null
  postalCode?: string | null
  instagramUrl?: string | null
  facebookUrl?: string | null
  businessModel: $Enums.BusinessModel
  status?: $Enums.TenantStatus
  directoryOptIn?: boolean
  createdAt?: Date | string
  updatedAt?: Date | string
  deletedAt?: Date | string | null
  deliveryEnabled?: boolean
  deliveryPriceCents?: number
  showGoogleMap?: boolean
  feature1Title?: string | null
  feature1Description?: string | null
  feature2Title?: string | null
  feature2Description?: string | null
  feature3Title?: string | null
  feature3Description?: string | null
  users?: Prisma.TenantUserCreateNestedManyWithoutTenantInput
  domains?: Prisma.DomainCreateNestedManyWithoutTenantInput
  theme?: Prisma.ThemeSettingCreateNestedOneWithoutTenantInput
  subscription?: Prisma.SubscriptionCreateNestedOneWithoutTenantInput
  auditLogs?: Prisma.AuditLogCreateNestedManyWithoutTenantInput
  products?: Prisma.ProductCreateNestedManyWithoutTenantInput
  services?: Prisma.ServiceCreateNestedManyWithoutTenantInput
  quoteRequests?: Prisma.QuoteRequestCreateNestedManyWithoutTenantInput
  productCategories?: Prisma.ProductCategoryCreateNestedManyWithoutTenantInput
  mediaAssets?: Prisma.MediaAssetCreateNestedManyWithoutTenantInput
  orders?: Prisma.OrderCreateNestedManyWithoutTenantInput
  deliveryZones?: Prisma.DeliveryZoneCreateNestedManyWithoutTenantInput
  blogPosts?: Prisma.BlogPostCreateNestedManyWithoutTenantInput
  siteBanners?: Prisma.SiteBannerCreateNestedManyWithoutTenantInput
}

export type TenantUncheckedCreateWithoutServiceCategoriesInput = {
  id?: string
  name: string
  legalDocument: string
  slug: string
  email: string
  phone: string
  whatsapp?: string | null
  city: string
  state: string
  segment: string
  description?: string | null
  addressLine?: string | null
  postalCode?: string | null
  instagramUrl?: string | null
  facebookUrl?: string | null
  businessModel: $Enums.BusinessModel
  status?: $Enums.TenantStatus
  directoryOptIn?: boolean
  createdAt?: Date | string
  updatedAt?: Date | string
  deletedAt?: Date | string | null
  deliveryEnabled?: boolean
  deliveryPriceCents?: number
  showGoogleMap?: boolean
  feature1Title?: string | null
  feature1Description?: string | null
  feature2Title?: string | null
  feature2Description?: string | null
  feature3Title?: string | null
  feature3Description?: string | null
  users?: Prisma.TenantUserUncheckedCreateNestedManyWithoutTenantInput
  domains?: Prisma.DomainUncheckedCreateNestedManyWithoutTenantInput
  theme?: Prisma.ThemeSettingUncheckedCreateNestedOneWithoutTenantInput
  subscription?: Prisma.SubscriptionUncheckedCreateNestedOneWithoutTenantInput
  auditLogs?: Prisma.AuditLogUncheckedCreateNestedManyWithoutTenantInput
  products?: Prisma.ProductUncheckedCreateNestedManyWithoutTenantInput
  services?: Prisma.ServiceUncheckedCreateNestedManyWithoutTenantInput
  quoteRequests?: Prisma.QuoteRequestUncheckedCreateNestedManyWithoutTenantInput
  productCategories?: Prisma.ProductCategoryUncheckedCreateNestedManyWithoutTenantInput
  mediaAssets?: Prisma.MediaAssetUncheckedCreateNestedManyWithoutTenantInput
  orders?: Prisma.OrderUncheckedCreateNestedManyWithoutTenantInput
  deliveryZones?: Prisma.DeliveryZoneUncheckedCreateNestedManyWithoutTenantInput
  blogPosts?: Prisma.BlogPostUncheckedCreateNestedManyWithoutTenantInput
  siteBanners?: Prisma.SiteBannerUncheckedCreateNestedManyWithoutTenantInput
}

export type TenantCreateOrConnectWithoutServiceCategoriesInput = {
  where: Prisma.TenantWhereUniqueInput
  create: Prisma.XOR<Prisma.TenantCreateWithoutServiceCategoriesInput, Prisma.TenantUncheckedCreateWithoutServiceCategoriesInput>
}

export type TenantUpsertWithoutServiceCategoriesInput = {
  update: Prisma.XOR<Prisma.TenantUpdateWithoutServiceCategoriesInput, Prisma.TenantUncheckedUpdateWithoutServiceCategoriesInput>
  create: Prisma.XOR<Prisma.TenantCreateWithoutServiceCategoriesInput, Prisma.TenantUncheckedCreateWithoutServiceCategoriesInput>
  where?: Prisma.TenantWhereInput
}

export type TenantUpdateToOneWithWhereWithoutServiceCategoriesInput = {
  where?: Prisma.TenantWhereInput
  data: Prisma.XOR<Prisma.TenantUpdateWithoutServiceCategoriesInput, Prisma.TenantUncheckedUpdateWithoutServiceCategoriesInput>
}

export type TenantUpdateWithoutServiceCategoriesInput = {
  id?: Prisma.StringFieldUpdateOperationsInput | string
  name?: Prisma.StringFieldUpdateOperationsInput | string
  legalDocument?: Prisma.StringFieldUpdateOperationsInput | string
  slug?: Prisma.StringFieldUpdateOperationsInput | string
  email?: Prisma.StringFieldUpdateOperationsInput | string
  phone?: Prisma.StringFieldUpdateOperationsInput | string
  whatsapp?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  city?: Prisma.StringFieldUpdateOperationsInput | string
  state?: Prisma.StringFieldUpdateOperationsInput | string
  segment?: Prisma.StringFieldUpdateOperationsInput | string
  description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  addressLine?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  postalCode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  instagramUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  facebookUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  businessModel?: Prisma.EnumBusinessModelFieldUpdateOperationsInput | $Enums.BusinessModel
  status?: Prisma.EnumTenantStatusFieldUpdateOperationsInput | $Enums.TenantStatus
  directoryOptIn?: Prisma.BoolFieldUpdateOperationsInput | boolean
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  deliveryEnabled?: Prisma.BoolFieldUpdateOperationsInput | boolean
  deliveryPriceCents?: Prisma.IntFieldUpdateOperationsInput | number
  showGoogleMap?: Prisma.BoolFieldUpdateOperationsInput | boolean
  feature1Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature1Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  users?: Prisma.TenantUserUpdateManyWithoutTenantNestedInput
  domains?: Prisma.DomainUpdateManyWithoutTenantNestedInput
  theme?: Prisma.ThemeSettingUpdateOneWithoutTenantNestedInput
  subscription?: Prisma.SubscriptionUpdateOneWithoutTenantNestedInput
  auditLogs?: Prisma.AuditLogUpdateManyWithoutTenantNestedInput
  products?: Prisma.ProductUpdateManyWithoutTenantNestedInput
  services?: Prisma.ServiceUpdateManyWithoutTenantNestedInput
  quoteRequests?: Prisma.QuoteRequestUpdateManyWithoutTenantNestedInput
  productCategories?: Prisma.ProductCategoryUpdateManyWithoutTenantNestedInput
  mediaAssets?: Prisma.MediaAssetUpdateManyWithoutTenantNestedInput
  orders?: Prisma.OrderUpdateManyWithoutTenantNestedInput
  deliveryZones?: Prisma.DeliveryZoneUpdateManyWithoutTenantNestedInput
  blogPosts?: Prisma.BlogPostUpdateManyWithoutTenantNestedInput
  siteBanners?: Prisma.SiteBannerUpdateManyWithoutTenantNestedInput
}

export type TenantUncheckedUpdateWithoutServiceCategoriesInput = {
  id?: Prisma.StringFieldUpdateOperationsInput | string
  name?: Prisma.StringFieldUpdateOperationsInput | string
  legalDocument?: Prisma.StringFieldUpdateOperationsInput | string
  slug?: Prisma.StringFieldUpdateOperationsInput | string
  email?: Prisma.StringFieldUpdateOperationsInput | string
  phone?: Prisma.StringFieldUpdateOperationsInput | string
  whatsapp?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  city?: Prisma.StringFieldUpdateOperationsInput | string
  state?: Prisma.StringFieldUpdateOperationsInput | string
  segment?: Prisma.StringFieldUpdateOperationsInput | string
  description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  addressLine?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  postalCode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  instagramUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  facebookUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  businessModel?: Prisma.EnumBusinessModelFieldUpdateOperationsInput | $Enums.BusinessModel
  status?: Prisma.EnumTenantStatusFieldUpdateOperationsInput | $Enums.TenantStatus
  directoryOptIn?: Prisma.BoolFieldUpdateOperationsInput | boolean
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  deliveryEnabled?: Prisma.BoolFieldUpdateOperationsInput | boolean
  deliveryPriceCents?: Prisma.IntFieldUpdateOperationsInput | number
  showGoogleMap?: Prisma.BoolFieldUpdateOperationsInput | boolean
  feature1Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature1Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  users?: Prisma.TenantUserUncheckedUpdateManyWithoutTenantNestedInput
  domains?: Prisma.DomainUncheckedUpdateManyWithoutTenantNestedInput
  theme?: Prisma.ThemeSettingUncheckedUpdateOneWithoutTenantNestedInput
  subscription?: Prisma.SubscriptionUncheckedUpdateOneWithoutTenantNestedInput
  auditLogs?: Prisma.AuditLogUncheckedUpdateManyWithoutTenantNestedInput
  products?: Prisma.ProductUncheckedUpdateManyWithoutTenantNestedInput
  services?: Prisma.ServiceUncheckedUpdateManyWithoutTenantNestedInput
  quoteRequests?: Prisma.QuoteRequestUncheckedUpdateManyWithoutTenantNestedInput
  productCategories?: Prisma.ProductCategoryUncheckedUpdateManyWithoutTenantNestedInput
  mediaAssets?: Prisma.MediaAssetUncheckedUpdateManyWithoutTenantNestedInput
  orders?: Prisma.OrderUncheckedUpdateManyWithoutTenantNestedInput
  deliveryZones?: Prisma.DeliveryZoneUncheckedUpdateManyWithoutTenantNestedInput
  blogPosts?: Prisma.BlogPostUncheckedUpdateManyWithoutTenantNestedInput
  siteBanners?: Prisma.SiteBannerUncheckedUpdateManyWithoutTenantNestedInput
}

export type TenantCreateWithoutQuoteRequestsInput = {
  id?: string
  name: string
  legalDocument: string
  slug: string
  email: string
  phone: string
  whatsapp?: string | null
  city: string
  state: string
  segment: string
  description?: string | null
  addressLine?: string | null
  postalCode?: string | null
  instagramUrl?: string | null
  facebookUrl?: string | null
  businessModel: $Enums.BusinessModel
  status?: $Enums.TenantStatus
  directoryOptIn?: boolean
  createdAt?: Date | string
  updatedAt?: Date | string
  deletedAt?: Date | string | null
  deliveryEnabled?: boolean
  deliveryPriceCents?: number
  showGoogleMap?: boolean
  feature1Title?: string | null
  feature1Description?: string | null
  feature2Title?: string | null
  feature2Description?: string | null
  feature3Title?: string | null
  feature3Description?: string | null
  users?: Prisma.TenantUserCreateNestedManyWithoutTenantInput
  domains?: Prisma.DomainCreateNestedManyWithoutTenantInput
  theme?: Prisma.ThemeSettingCreateNestedOneWithoutTenantInput
  subscription?: Prisma.SubscriptionCreateNestedOneWithoutTenantInput
  auditLogs?: Prisma.AuditLogCreateNestedManyWithoutTenantInput
  products?: Prisma.ProductCreateNestedManyWithoutTenantInput
  services?: Prisma.ServiceCreateNestedManyWithoutTenantInput
  productCategories?: Prisma.ProductCategoryCreateNestedManyWithoutTenantInput
  serviceCategories?: Prisma.ServiceCategoryCreateNestedManyWithoutTenantInput
  mediaAssets?: Prisma.MediaAssetCreateNestedManyWithoutTenantInput
  orders?: Prisma.OrderCreateNestedManyWithoutTenantInput
  deliveryZones?: Prisma.DeliveryZoneCreateNestedManyWithoutTenantInput
  blogPosts?: Prisma.BlogPostCreateNestedManyWithoutTenantInput
  siteBanners?: Prisma.SiteBannerCreateNestedManyWithoutTenantInput
}

export type TenantUncheckedCreateWithoutQuoteRequestsInput = {
  id?: string
  name: string
  legalDocument: string
  slug: string
  email: string
  phone: string
  whatsapp?: string | null
  city: string
  state: string
  segment: string
  description?: string | null
  addressLine?: string | null
  postalCode?: string | null
  instagramUrl?: string | null
  facebookUrl?: string | null
  businessModel: $Enums.BusinessModel
  status?: $Enums.TenantStatus
  directoryOptIn?: boolean
  createdAt?: Date | string
  updatedAt?: Date | string
  deletedAt?: Date | string | null
  deliveryEnabled?: boolean
  deliveryPriceCents?: number
  showGoogleMap?: boolean
  feature1Title?: string | null
  feature1Description?: string | null
  feature2Title?: string | null
  feature2Description?: string | null
  feature3Title?: string | null
  feature3Description?: string | null
  users?: Prisma.TenantUserUncheckedCreateNestedManyWithoutTenantInput
  domains?: Prisma.DomainUncheckedCreateNestedManyWithoutTenantInput
  theme?: Prisma.ThemeSettingUncheckedCreateNestedOneWithoutTenantInput
  subscription?: Prisma.SubscriptionUncheckedCreateNestedOneWithoutTenantInput
  auditLogs?: Prisma.AuditLogUncheckedCreateNestedManyWithoutTenantInput
  products?: Prisma.ProductUncheckedCreateNestedManyWithoutTenantInput
  services?: Prisma.ServiceUncheckedCreateNestedManyWithoutTenantInput
  productCategories?: Prisma.ProductCategoryUncheckedCreateNestedManyWithoutTenantInput
  serviceCategories?: Prisma.ServiceCategoryUncheckedCreateNestedManyWithoutTenantInput
  mediaAssets?: Prisma.MediaAssetUncheckedCreateNestedManyWithoutTenantInput
  orders?: Prisma.OrderUncheckedCreateNestedManyWithoutTenantInput
  deliveryZones?: Prisma.DeliveryZoneUncheckedCreateNestedManyWithoutTenantInput
  blogPosts?: Prisma.BlogPostUncheckedCreateNestedManyWithoutTenantInput
  siteBanners?: Prisma.SiteBannerUncheckedCreateNestedManyWithoutTenantInput
}

export type TenantCreateOrConnectWithoutQuoteRequestsInput = {
  where: Prisma.TenantWhereUniqueInput
  create: Prisma.XOR<Prisma.TenantCreateWithoutQuoteRequestsInput, Prisma.TenantUncheckedCreateWithoutQuoteRequestsInput>
}

export type TenantUpsertWithoutQuoteRequestsInput = {
  update: Prisma.XOR<Prisma.TenantUpdateWithoutQuoteRequestsInput, Prisma.TenantUncheckedUpdateWithoutQuoteRequestsInput>
  create: Prisma.XOR<Prisma.TenantCreateWithoutQuoteRequestsInput, Prisma.TenantUncheckedCreateWithoutQuoteRequestsInput>
  where?: Prisma.TenantWhereInput
}

export type TenantUpdateToOneWithWhereWithoutQuoteRequestsInput = {
  where?: Prisma.TenantWhereInput
  data: Prisma.XOR<Prisma.TenantUpdateWithoutQuoteRequestsInput, Prisma.TenantUncheckedUpdateWithoutQuoteRequestsInput>
}

export type TenantUpdateWithoutQuoteRequestsInput = {
  id?: Prisma.StringFieldUpdateOperationsInput | string
  name?: Prisma.StringFieldUpdateOperationsInput | string
  legalDocument?: Prisma.StringFieldUpdateOperationsInput | string
  slug?: Prisma.StringFieldUpdateOperationsInput | string
  email?: Prisma.StringFieldUpdateOperationsInput | string
  phone?: Prisma.StringFieldUpdateOperationsInput | string
  whatsapp?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  city?: Prisma.StringFieldUpdateOperationsInput | string
  state?: Prisma.StringFieldUpdateOperationsInput | string
  segment?: Prisma.StringFieldUpdateOperationsInput | string
  description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  addressLine?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  postalCode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  instagramUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  facebookUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  businessModel?: Prisma.EnumBusinessModelFieldUpdateOperationsInput | $Enums.BusinessModel
  status?: Prisma.EnumTenantStatusFieldUpdateOperationsInput | $Enums.TenantStatus
  directoryOptIn?: Prisma.BoolFieldUpdateOperationsInput | boolean
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  deliveryEnabled?: Prisma.BoolFieldUpdateOperationsInput | boolean
  deliveryPriceCents?: Prisma.IntFieldUpdateOperationsInput | number
  showGoogleMap?: Prisma.BoolFieldUpdateOperationsInput | boolean
  feature1Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature1Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  users?: Prisma.TenantUserUpdateManyWithoutTenantNestedInput
  domains?: Prisma.DomainUpdateManyWithoutTenantNestedInput
  theme?: Prisma.ThemeSettingUpdateOneWithoutTenantNestedInput
  subscription?: Prisma.SubscriptionUpdateOneWithoutTenantNestedInput
  auditLogs?: Prisma.AuditLogUpdateManyWithoutTenantNestedInput
  products?: Prisma.ProductUpdateManyWithoutTenantNestedInput
  services?: Prisma.ServiceUpdateManyWithoutTenantNestedInput
  productCategories?: Prisma.ProductCategoryUpdateManyWithoutTenantNestedInput
  serviceCategories?: Prisma.ServiceCategoryUpdateManyWithoutTenantNestedInput
  mediaAssets?: Prisma.MediaAssetUpdateManyWithoutTenantNestedInput
  orders?: Prisma.OrderUpdateManyWithoutTenantNestedInput
  deliveryZones?: Prisma.DeliveryZoneUpdateManyWithoutTenantNestedInput
  blogPosts?: Prisma.BlogPostUpdateManyWithoutTenantNestedInput
  siteBanners?: Prisma.SiteBannerUpdateManyWithoutTenantNestedInput
}

export type TenantUncheckedUpdateWithoutQuoteRequestsInput = {
  id?: Prisma.StringFieldUpdateOperationsInput | string
  name?: Prisma.StringFieldUpdateOperationsInput | string
  legalDocument?: Prisma.StringFieldUpdateOperationsInput | string
  slug?: Prisma.StringFieldUpdateOperationsInput | string
  email?: Prisma.StringFieldUpdateOperationsInput | string
  phone?: Prisma.StringFieldUpdateOperationsInput | string
  whatsapp?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  city?: Prisma.StringFieldUpdateOperationsInput | string
  state?: Prisma.StringFieldUpdateOperationsInput | string
  segment?: Prisma.StringFieldUpdateOperationsInput | string
  description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  addressLine?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  postalCode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  instagramUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  facebookUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  businessModel?: Prisma.EnumBusinessModelFieldUpdateOperationsInput | $Enums.BusinessModel
  status?: Prisma.EnumTenantStatusFieldUpdateOperationsInput | $Enums.TenantStatus
  directoryOptIn?: Prisma.BoolFieldUpdateOperationsInput | boolean
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  deliveryEnabled?: Prisma.BoolFieldUpdateOperationsInput | boolean
  deliveryPriceCents?: Prisma.IntFieldUpdateOperationsInput | number
  showGoogleMap?: Prisma.BoolFieldUpdateOperationsInput | boolean
  feature1Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature1Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  users?: Prisma.TenantUserUncheckedUpdateManyWithoutTenantNestedInput
  domains?: Prisma.DomainUncheckedUpdateManyWithoutTenantNestedInput
  theme?: Prisma.ThemeSettingUncheckedUpdateOneWithoutTenantNestedInput
  subscription?: Prisma.SubscriptionUncheckedUpdateOneWithoutTenantNestedInput
  auditLogs?: Prisma.AuditLogUncheckedUpdateManyWithoutTenantNestedInput
  products?: Prisma.ProductUncheckedUpdateManyWithoutTenantNestedInput
  services?: Prisma.ServiceUncheckedUpdateManyWithoutTenantNestedInput
  productCategories?: Prisma.ProductCategoryUncheckedUpdateManyWithoutTenantNestedInput
  serviceCategories?: Prisma.ServiceCategoryUncheckedUpdateManyWithoutTenantNestedInput
  mediaAssets?: Prisma.MediaAssetUncheckedUpdateManyWithoutTenantNestedInput
  orders?: Prisma.OrderUncheckedUpdateManyWithoutTenantNestedInput
  deliveryZones?: Prisma.DeliveryZoneUncheckedUpdateManyWithoutTenantNestedInput
  blogPosts?: Prisma.BlogPostUncheckedUpdateManyWithoutTenantNestedInput
  siteBanners?: Prisma.SiteBannerUncheckedUpdateManyWithoutTenantNestedInput
}

export type TenantCreateWithoutOrdersInput = {
  id?: string
  name: string
  legalDocument: string
  slug: string
  email: string
  phone: string
  whatsapp?: string | null
  city: string
  state: string
  segment: string
  description?: string | null
  addressLine?: string | null
  postalCode?: string | null
  instagramUrl?: string | null
  facebookUrl?: string | null
  businessModel: $Enums.BusinessModel
  status?: $Enums.TenantStatus
  directoryOptIn?: boolean
  createdAt?: Date | string
  updatedAt?: Date | string
  deletedAt?: Date | string | null
  deliveryEnabled?: boolean
  deliveryPriceCents?: number
  showGoogleMap?: boolean
  feature1Title?: string | null
  feature1Description?: string | null
  feature2Title?: string | null
  feature2Description?: string | null
  feature3Title?: string | null
  feature3Description?: string | null
  users?: Prisma.TenantUserCreateNestedManyWithoutTenantInput
  domains?: Prisma.DomainCreateNestedManyWithoutTenantInput
  theme?: Prisma.ThemeSettingCreateNestedOneWithoutTenantInput
  subscription?: Prisma.SubscriptionCreateNestedOneWithoutTenantInput
  auditLogs?: Prisma.AuditLogCreateNestedManyWithoutTenantInput
  products?: Prisma.ProductCreateNestedManyWithoutTenantInput
  services?: Prisma.ServiceCreateNestedManyWithoutTenantInput
  quoteRequests?: Prisma.QuoteRequestCreateNestedManyWithoutTenantInput
  productCategories?: Prisma.ProductCategoryCreateNestedManyWithoutTenantInput
  serviceCategories?: Prisma.ServiceCategoryCreateNestedManyWithoutTenantInput
  mediaAssets?: Prisma.MediaAssetCreateNestedManyWithoutTenantInput
  deliveryZones?: Prisma.DeliveryZoneCreateNestedManyWithoutTenantInput
  blogPosts?: Prisma.BlogPostCreateNestedManyWithoutTenantInput
  siteBanners?: Prisma.SiteBannerCreateNestedManyWithoutTenantInput
}

export type TenantUncheckedCreateWithoutOrdersInput = {
  id?: string
  name: string
  legalDocument: string
  slug: string
  email: string
  phone: string
  whatsapp?: string | null
  city: string
  state: string
  segment: string
  description?: string | null
  addressLine?: string | null
  postalCode?: string | null
  instagramUrl?: string | null
  facebookUrl?: string | null
  businessModel: $Enums.BusinessModel
  status?: $Enums.TenantStatus
  directoryOptIn?: boolean
  createdAt?: Date | string
  updatedAt?: Date | string
  deletedAt?: Date | string | null
  deliveryEnabled?: boolean
  deliveryPriceCents?: number
  showGoogleMap?: boolean
  feature1Title?: string | null
  feature1Description?: string | null
  feature2Title?: string | null
  feature2Description?: string | null
  feature3Title?: string | null
  feature3Description?: string | null
  users?: Prisma.TenantUserUncheckedCreateNestedManyWithoutTenantInput
  domains?: Prisma.DomainUncheckedCreateNestedManyWithoutTenantInput
  theme?: Prisma.ThemeSettingUncheckedCreateNestedOneWithoutTenantInput
  subscription?: Prisma.SubscriptionUncheckedCreateNestedOneWithoutTenantInput
  auditLogs?: Prisma.AuditLogUncheckedCreateNestedManyWithoutTenantInput
  products?: Prisma.ProductUncheckedCreateNestedManyWithoutTenantInput
  services?: Prisma.ServiceUncheckedCreateNestedManyWithoutTenantInput
  quoteRequests?: Prisma.QuoteRequestUncheckedCreateNestedManyWithoutTenantInput
  productCategories?: Prisma.ProductCategoryUncheckedCreateNestedManyWithoutTenantInput
  serviceCategories?: Prisma.ServiceCategoryUncheckedCreateNestedManyWithoutTenantInput
  mediaAssets?: Prisma.MediaAssetUncheckedCreateNestedManyWithoutTenantInput
  deliveryZones?: Prisma.DeliveryZoneUncheckedCreateNestedManyWithoutTenantInput
  blogPosts?: Prisma.BlogPostUncheckedCreateNestedManyWithoutTenantInput
  siteBanners?: Prisma.SiteBannerUncheckedCreateNestedManyWithoutTenantInput
}

export type TenantCreateOrConnectWithoutOrdersInput = {
  where: Prisma.TenantWhereUniqueInput
  create: Prisma.XOR<Prisma.TenantCreateWithoutOrdersInput, Prisma.TenantUncheckedCreateWithoutOrdersInput>
}

export type TenantUpsertWithoutOrdersInput = {
  update: Prisma.XOR<Prisma.TenantUpdateWithoutOrdersInput, Prisma.TenantUncheckedUpdateWithoutOrdersInput>
  create: Prisma.XOR<Prisma.TenantCreateWithoutOrdersInput, Prisma.TenantUncheckedCreateWithoutOrdersInput>
  where?: Prisma.TenantWhereInput
}

export type TenantUpdateToOneWithWhereWithoutOrdersInput = {
  where?: Prisma.TenantWhereInput
  data: Prisma.XOR<Prisma.TenantUpdateWithoutOrdersInput, Prisma.TenantUncheckedUpdateWithoutOrdersInput>
}

export type TenantUpdateWithoutOrdersInput = {
  id?: Prisma.StringFieldUpdateOperationsInput | string
  name?: Prisma.StringFieldUpdateOperationsInput | string
  legalDocument?: Prisma.StringFieldUpdateOperationsInput | string
  slug?: Prisma.StringFieldUpdateOperationsInput | string
  email?: Prisma.StringFieldUpdateOperationsInput | string
  phone?: Prisma.StringFieldUpdateOperationsInput | string
  whatsapp?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  city?: Prisma.StringFieldUpdateOperationsInput | string
  state?: Prisma.StringFieldUpdateOperationsInput | string
  segment?: Prisma.StringFieldUpdateOperationsInput | string
  description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  addressLine?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  postalCode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  instagramUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  facebookUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  businessModel?: Prisma.EnumBusinessModelFieldUpdateOperationsInput | $Enums.BusinessModel
  status?: Prisma.EnumTenantStatusFieldUpdateOperationsInput | $Enums.TenantStatus
  directoryOptIn?: Prisma.BoolFieldUpdateOperationsInput | boolean
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  deliveryEnabled?: Prisma.BoolFieldUpdateOperationsInput | boolean
  deliveryPriceCents?: Prisma.IntFieldUpdateOperationsInput | number
  showGoogleMap?: Prisma.BoolFieldUpdateOperationsInput | boolean
  feature1Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature1Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  users?: Prisma.TenantUserUpdateManyWithoutTenantNestedInput
  domains?: Prisma.DomainUpdateManyWithoutTenantNestedInput
  theme?: Prisma.ThemeSettingUpdateOneWithoutTenantNestedInput
  subscription?: Prisma.SubscriptionUpdateOneWithoutTenantNestedInput
  auditLogs?: Prisma.AuditLogUpdateManyWithoutTenantNestedInput
  products?: Prisma.ProductUpdateManyWithoutTenantNestedInput
  services?: Prisma.ServiceUpdateManyWithoutTenantNestedInput
  quoteRequests?: Prisma.QuoteRequestUpdateManyWithoutTenantNestedInput
  productCategories?: Prisma.ProductCategoryUpdateManyWithoutTenantNestedInput
  serviceCategories?: Prisma.ServiceCategoryUpdateManyWithoutTenantNestedInput
  mediaAssets?: Prisma.MediaAssetUpdateManyWithoutTenantNestedInput
  deliveryZones?: Prisma.DeliveryZoneUpdateManyWithoutTenantNestedInput
  blogPosts?: Prisma.BlogPostUpdateManyWithoutTenantNestedInput
  siteBanners?: Prisma.SiteBannerUpdateManyWithoutTenantNestedInput
}

export type TenantUncheckedUpdateWithoutOrdersInput = {
  id?: Prisma.StringFieldUpdateOperationsInput | string
  name?: Prisma.StringFieldUpdateOperationsInput | string
  legalDocument?: Prisma.StringFieldUpdateOperationsInput | string
  slug?: Prisma.StringFieldUpdateOperationsInput | string
  email?: Prisma.StringFieldUpdateOperationsInput | string
  phone?: Prisma.StringFieldUpdateOperationsInput | string
  whatsapp?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  city?: Prisma.StringFieldUpdateOperationsInput | string
  state?: Prisma.StringFieldUpdateOperationsInput | string
  segment?: Prisma.StringFieldUpdateOperationsInput | string
  description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  addressLine?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  postalCode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  instagramUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  facebookUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  businessModel?: Prisma.EnumBusinessModelFieldUpdateOperationsInput | $Enums.BusinessModel
  status?: Prisma.EnumTenantStatusFieldUpdateOperationsInput | $Enums.TenantStatus
  directoryOptIn?: Prisma.BoolFieldUpdateOperationsInput | boolean
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  deliveryEnabled?: Prisma.BoolFieldUpdateOperationsInput | boolean
  deliveryPriceCents?: Prisma.IntFieldUpdateOperationsInput | number
  showGoogleMap?: Prisma.BoolFieldUpdateOperationsInput | boolean
  feature1Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature1Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  users?: Prisma.TenantUserUncheckedUpdateManyWithoutTenantNestedInput
  domains?: Prisma.DomainUncheckedUpdateManyWithoutTenantNestedInput
  theme?: Prisma.ThemeSettingUncheckedUpdateOneWithoutTenantNestedInput
  subscription?: Prisma.SubscriptionUncheckedUpdateOneWithoutTenantNestedInput
  auditLogs?: Prisma.AuditLogUncheckedUpdateManyWithoutTenantNestedInput
  products?: Prisma.ProductUncheckedUpdateManyWithoutTenantNestedInput
  services?: Prisma.ServiceUncheckedUpdateManyWithoutTenantNestedInput
  quoteRequests?: Prisma.QuoteRequestUncheckedUpdateManyWithoutTenantNestedInput
  productCategories?: Prisma.ProductCategoryUncheckedUpdateManyWithoutTenantNestedInput
  serviceCategories?: Prisma.ServiceCategoryUncheckedUpdateManyWithoutTenantNestedInput
  mediaAssets?: Prisma.MediaAssetUncheckedUpdateManyWithoutTenantNestedInput
  deliveryZones?: Prisma.DeliveryZoneUncheckedUpdateManyWithoutTenantNestedInput
  blogPosts?: Prisma.BlogPostUncheckedUpdateManyWithoutTenantNestedInput
  siteBanners?: Prisma.SiteBannerUncheckedUpdateManyWithoutTenantNestedInput
}

export type TenantCreateWithoutAuditLogsInput = {
  id?: string
  name: string
  legalDocument: string
  slug: string
  email: string
  phone: string
  whatsapp?: string | null
  city: string
  state: string
  segment: string
  description?: string | null
  addressLine?: string | null
  postalCode?: string | null
  instagramUrl?: string | null
  facebookUrl?: string | null
  businessModel: $Enums.BusinessModel
  status?: $Enums.TenantStatus
  directoryOptIn?: boolean
  createdAt?: Date | string
  updatedAt?: Date | string
  deletedAt?: Date | string | null
  deliveryEnabled?: boolean
  deliveryPriceCents?: number
  showGoogleMap?: boolean
  feature1Title?: string | null
  feature1Description?: string | null
  feature2Title?: string | null
  feature2Description?: string | null
  feature3Title?: string | null
  feature3Description?: string | null
  users?: Prisma.TenantUserCreateNestedManyWithoutTenantInput
  domains?: Prisma.DomainCreateNestedManyWithoutTenantInput
  theme?: Prisma.ThemeSettingCreateNestedOneWithoutTenantInput
  subscription?: Prisma.SubscriptionCreateNestedOneWithoutTenantInput
  products?: Prisma.ProductCreateNestedManyWithoutTenantInput
  services?: Prisma.ServiceCreateNestedManyWithoutTenantInput
  quoteRequests?: Prisma.QuoteRequestCreateNestedManyWithoutTenantInput
  productCategories?: Prisma.ProductCategoryCreateNestedManyWithoutTenantInput
  serviceCategories?: Prisma.ServiceCategoryCreateNestedManyWithoutTenantInput
  mediaAssets?: Prisma.MediaAssetCreateNestedManyWithoutTenantInput
  orders?: Prisma.OrderCreateNestedManyWithoutTenantInput
  deliveryZones?: Prisma.DeliveryZoneCreateNestedManyWithoutTenantInput
  blogPosts?: Prisma.BlogPostCreateNestedManyWithoutTenantInput
  siteBanners?: Prisma.SiteBannerCreateNestedManyWithoutTenantInput
}

export type TenantUncheckedCreateWithoutAuditLogsInput = {
  id?: string
  name: string
  legalDocument: string
  slug: string
  email: string
  phone: string
  whatsapp?: string | null
  city: string
  state: string
  segment: string
  description?: string | null
  addressLine?: string | null
  postalCode?: string | null
  instagramUrl?: string | null
  facebookUrl?: string | null
  businessModel: $Enums.BusinessModel
  status?: $Enums.TenantStatus
  directoryOptIn?: boolean
  createdAt?: Date | string
  updatedAt?: Date | string
  deletedAt?: Date | string | null
  deliveryEnabled?: boolean
  deliveryPriceCents?: number
  showGoogleMap?: boolean
  feature1Title?: string | null
  feature1Description?: string | null
  feature2Title?: string | null
  feature2Description?: string | null
  feature3Title?: string | null
  feature3Description?: string | null
  users?: Prisma.TenantUserUncheckedCreateNestedManyWithoutTenantInput
  domains?: Prisma.DomainUncheckedCreateNestedManyWithoutTenantInput
  theme?: Prisma.ThemeSettingUncheckedCreateNestedOneWithoutTenantInput
  subscription?: Prisma.SubscriptionUncheckedCreateNestedOneWithoutTenantInput
  products?: Prisma.ProductUncheckedCreateNestedManyWithoutTenantInput
  services?: Prisma.ServiceUncheckedCreateNestedManyWithoutTenantInput
  quoteRequests?: Prisma.QuoteRequestUncheckedCreateNestedManyWithoutTenantInput
  productCategories?: Prisma.ProductCategoryUncheckedCreateNestedManyWithoutTenantInput
  serviceCategories?: Prisma.ServiceCategoryUncheckedCreateNestedManyWithoutTenantInput
  mediaAssets?: Prisma.MediaAssetUncheckedCreateNestedManyWithoutTenantInput
  orders?: Prisma.OrderUncheckedCreateNestedManyWithoutTenantInput
  deliveryZones?: Prisma.DeliveryZoneUncheckedCreateNestedManyWithoutTenantInput
  blogPosts?: Prisma.BlogPostUncheckedCreateNestedManyWithoutTenantInput
  siteBanners?: Prisma.SiteBannerUncheckedCreateNestedManyWithoutTenantInput
}

export type TenantCreateOrConnectWithoutAuditLogsInput = {
  where: Prisma.TenantWhereUniqueInput
  create: Prisma.XOR<Prisma.TenantCreateWithoutAuditLogsInput, Prisma.TenantUncheckedCreateWithoutAuditLogsInput>
}

export type TenantUpsertWithoutAuditLogsInput = {
  update: Prisma.XOR<Prisma.TenantUpdateWithoutAuditLogsInput, Prisma.TenantUncheckedUpdateWithoutAuditLogsInput>
  create: Prisma.XOR<Prisma.TenantCreateWithoutAuditLogsInput, Prisma.TenantUncheckedCreateWithoutAuditLogsInput>
  where?: Prisma.TenantWhereInput
}

export type TenantUpdateToOneWithWhereWithoutAuditLogsInput = {
  where?: Prisma.TenantWhereInput
  data: Prisma.XOR<Prisma.TenantUpdateWithoutAuditLogsInput, Prisma.TenantUncheckedUpdateWithoutAuditLogsInput>
}

export type TenantUpdateWithoutAuditLogsInput = {
  id?: Prisma.StringFieldUpdateOperationsInput | string
  name?: Prisma.StringFieldUpdateOperationsInput | string
  legalDocument?: Prisma.StringFieldUpdateOperationsInput | string
  slug?: Prisma.StringFieldUpdateOperationsInput | string
  email?: Prisma.StringFieldUpdateOperationsInput | string
  phone?: Prisma.StringFieldUpdateOperationsInput | string
  whatsapp?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  city?: Prisma.StringFieldUpdateOperationsInput | string
  state?: Prisma.StringFieldUpdateOperationsInput | string
  segment?: Prisma.StringFieldUpdateOperationsInput | string
  description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  addressLine?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  postalCode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  instagramUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  facebookUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  businessModel?: Prisma.EnumBusinessModelFieldUpdateOperationsInput | $Enums.BusinessModel
  status?: Prisma.EnumTenantStatusFieldUpdateOperationsInput | $Enums.TenantStatus
  directoryOptIn?: Prisma.BoolFieldUpdateOperationsInput | boolean
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  deliveryEnabled?: Prisma.BoolFieldUpdateOperationsInput | boolean
  deliveryPriceCents?: Prisma.IntFieldUpdateOperationsInput | number
  showGoogleMap?: Prisma.BoolFieldUpdateOperationsInput | boolean
  feature1Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature1Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  users?: Prisma.TenantUserUpdateManyWithoutTenantNestedInput
  domains?: Prisma.DomainUpdateManyWithoutTenantNestedInput
  theme?: Prisma.ThemeSettingUpdateOneWithoutTenantNestedInput
  subscription?: Prisma.SubscriptionUpdateOneWithoutTenantNestedInput
  products?: Prisma.ProductUpdateManyWithoutTenantNestedInput
  services?: Prisma.ServiceUpdateManyWithoutTenantNestedInput
  quoteRequests?: Prisma.QuoteRequestUpdateManyWithoutTenantNestedInput
  productCategories?: Prisma.ProductCategoryUpdateManyWithoutTenantNestedInput
  serviceCategories?: Prisma.ServiceCategoryUpdateManyWithoutTenantNestedInput
  mediaAssets?: Prisma.MediaAssetUpdateManyWithoutTenantNestedInput
  orders?: Prisma.OrderUpdateManyWithoutTenantNestedInput
  deliveryZones?: Prisma.DeliveryZoneUpdateManyWithoutTenantNestedInput
  blogPosts?: Prisma.BlogPostUpdateManyWithoutTenantNestedInput
  siteBanners?: Prisma.SiteBannerUpdateManyWithoutTenantNestedInput
}

export type TenantUncheckedUpdateWithoutAuditLogsInput = {
  id?: Prisma.StringFieldUpdateOperationsInput | string
  name?: Prisma.StringFieldUpdateOperationsInput | string
  legalDocument?: Prisma.StringFieldUpdateOperationsInput | string
  slug?: Prisma.StringFieldUpdateOperationsInput | string
  email?: Prisma.StringFieldUpdateOperationsInput | string
  phone?: Prisma.StringFieldUpdateOperationsInput | string
  whatsapp?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  city?: Prisma.StringFieldUpdateOperationsInput | string
  state?: Prisma.StringFieldUpdateOperationsInput | string
  segment?: Prisma.StringFieldUpdateOperationsInput | string
  description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  addressLine?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  postalCode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  instagramUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  facebookUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  businessModel?: Prisma.EnumBusinessModelFieldUpdateOperationsInput | $Enums.BusinessModel
  status?: Prisma.EnumTenantStatusFieldUpdateOperationsInput | $Enums.TenantStatus
  directoryOptIn?: Prisma.BoolFieldUpdateOperationsInput | boolean
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  deliveryEnabled?: Prisma.BoolFieldUpdateOperationsInput | boolean
  deliveryPriceCents?: Prisma.IntFieldUpdateOperationsInput | number
  showGoogleMap?: Prisma.BoolFieldUpdateOperationsInput | boolean
  feature1Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature1Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  users?: Prisma.TenantUserUncheckedUpdateManyWithoutTenantNestedInput
  domains?: Prisma.DomainUncheckedUpdateManyWithoutTenantNestedInput
  theme?: Prisma.ThemeSettingUncheckedUpdateOneWithoutTenantNestedInput
  subscription?: Prisma.SubscriptionUncheckedUpdateOneWithoutTenantNestedInput
  products?: Prisma.ProductUncheckedUpdateManyWithoutTenantNestedInput
  services?: Prisma.ServiceUncheckedUpdateManyWithoutTenantNestedInput
  quoteRequests?: Prisma.QuoteRequestUncheckedUpdateManyWithoutTenantNestedInput
  productCategories?: Prisma.ProductCategoryUncheckedUpdateManyWithoutTenantNestedInput
  serviceCategories?: Prisma.ServiceCategoryUncheckedUpdateManyWithoutTenantNestedInput
  mediaAssets?: Prisma.MediaAssetUncheckedUpdateManyWithoutTenantNestedInput
  orders?: Prisma.OrderUncheckedUpdateManyWithoutTenantNestedInput
  deliveryZones?: Prisma.DeliveryZoneUncheckedUpdateManyWithoutTenantNestedInput
  blogPosts?: Prisma.BlogPostUncheckedUpdateManyWithoutTenantNestedInput
  siteBanners?: Prisma.SiteBannerUncheckedUpdateManyWithoutTenantNestedInput
}

export type TenantCreateWithoutBlogPostsInput = {
  id?: string
  name: string
  legalDocument: string
  slug: string
  email: string
  phone: string
  whatsapp?: string | null
  city: string
  state: string
  segment: string
  description?: string | null
  addressLine?: string | null
  postalCode?: string | null
  instagramUrl?: string | null
  facebookUrl?: string | null
  businessModel: $Enums.BusinessModel
  status?: $Enums.TenantStatus
  directoryOptIn?: boolean
  createdAt?: Date | string
  updatedAt?: Date | string
  deletedAt?: Date | string | null
  deliveryEnabled?: boolean
  deliveryPriceCents?: number
  showGoogleMap?: boolean
  feature1Title?: string | null
  feature1Description?: string | null
  feature2Title?: string | null
  feature2Description?: string | null
  feature3Title?: string | null
  feature3Description?: string | null
  users?: Prisma.TenantUserCreateNestedManyWithoutTenantInput
  domains?: Prisma.DomainCreateNestedManyWithoutTenantInput
  theme?: Prisma.ThemeSettingCreateNestedOneWithoutTenantInput
  subscription?: Prisma.SubscriptionCreateNestedOneWithoutTenantInput
  auditLogs?: Prisma.AuditLogCreateNestedManyWithoutTenantInput
  products?: Prisma.ProductCreateNestedManyWithoutTenantInput
  services?: Prisma.ServiceCreateNestedManyWithoutTenantInput
  quoteRequests?: Prisma.QuoteRequestCreateNestedManyWithoutTenantInput
  productCategories?: Prisma.ProductCategoryCreateNestedManyWithoutTenantInput
  serviceCategories?: Prisma.ServiceCategoryCreateNestedManyWithoutTenantInput
  mediaAssets?: Prisma.MediaAssetCreateNestedManyWithoutTenantInput
  orders?: Prisma.OrderCreateNestedManyWithoutTenantInput
  deliveryZones?: Prisma.DeliveryZoneCreateNestedManyWithoutTenantInput
  siteBanners?: Prisma.SiteBannerCreateNestedManyWithoutTenantInput
}

export type TenantUncheckedCreateWithoutBlogPostsInput = {
  id?: string
  name: string
  legalDocument: string
  slug: string
  email: string
  phone: string
  whatsapp?: string | null
  city: string
  state: string
  segment: string
  description?: string | null
  addressLine?: string | null
  postalCode?: string | null
  instagramUrl?: string | null
  facebookUrl?: string | null
  businessModel: $Enums.BusinessModel
  status?: $Enums.TenantStatus
  directoryOptIn?: boolean
  createdAt?: Date | string
  updatedAt?: Date | string
  deletedAt?: Date | string | null
  deliveryEnabled?: boolean
  deliveryPriceCents?: number
  showGoogleMap?: boolean
  feature1Title?: string | null
  feature1Description?: string | null
  feature2Title?: string | null
  feature2Description?: string | null
  feature3Title?: string | null
  feature3Description?: string | null
  users?: Prisma.TenantUserUncheckedCreateNestedManyWithoutTenantInput
  domains?: Prisma.DomainUncheckedCreateNestedManyWithoutTenantInput
  theme?: Prisma.ThemeSettingUncheckedCreateNestedOneWithoutTenantInput
  subscription?: Prisma.SubscriptionUncheckedCreateNestedOneWithoutTenantInput
  auditLogs?: Prisma.AuditLogUncheckedCreateNestedManyWithoutTenantInput
  products?: Prisma.ProductUncheckedCreateNestedManyWithoutTenantInput
  services?: Prisma.ServiceUncheckedCreateNestedManyWithoutTenantInput
  quoteRequests?: Prisma.QuoteRequestUncheckedCreateNestedManyWithoutTenantInput
  productCategories?: Prisma.ProductCategoryUncheckedCreateNestedManyWithoutTenantInput
  serviceCategories?: Prisma.ServiceCategoryUncheckedCreateNestedManyWithoutTenantInput
  mediaAssets?: Prisma.MediaAssetUncheckedCreateNestedManyWithoutTenantInput
  orders?: Prisma.OrderUncheckedCreateNestedManyWithoutTenantInput
  deliveryZones?: Prisma.DeliveryZoneUncheckedCreateNestedManyWithoutTenantInput
  siteBanners?: Prisma.SiteBannerUncheckedCreateNestedManyWithoutTenantInput
}

export type TenantCreateOrConnectWithoutBlogPostsInput = {
  where: Prisma.TenantWhereUniqueInput
  create: Prisma.XOR<Prisma.TenantCreateWithoutBlogPostsInput, Prisma.TenantUncheckedCreateWithoutBlogPostsInput>
}

export type TenantUpsertWithoutBlogPostsInput = {
  update: Prisma.XOR<Prisma.TenantUpdateWithoutBlogPostsInput, Prisma.TenantUncheckedUpdateWithoutBlogPostsInput>
  create: Prisma.XOR<Prisma.TenantCreateWithoutBlogPostsInput, Prisma.TenantUncheckedCreateWithoutBlogPostsInput>
  where?: Prisma.TenantWhereInput
}

export type TenantUpdateToOneWithWhereWithoutBlogPostsInput = {
  where?: Prisma.TenantWhereInput
  data: Prisma.XOR<Prisma.TenantUpdateWithoutBlogPostsInput, Prisma.TenantUncheckedUpdateWithoutBlogPostsInput>
}

export type TenantUpdateWithoutBlogPostsInput = {
  id?: Prisma.StringFieldUpdateOperationsInput | string
  name?: Prisma.StringFieldUpdateOperationsInput | string
  legalDocument?: Prisma.StringFieldUpdateOperationsInput | string
  slug?: Prisma.StringFieldUpdateOperationsInput | string
  email?: Prisma.StringFieldUpdateOperationsInput | string
  phone?: Prisma.StringFieldUpdateOperationsInput | string
  whatsapp?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  city?: Prisma.StringFieldUpdateOperationsInput | string
  state?: Prisma.StringFieldUpdateOperationsInput | string
  segment?: Prisma.StringFieldUpdateOperationsInput | string
  description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  addressLine?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  postalCode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  instagramUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  facebookUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  businessModel?: Prisma.EnumBusinessModelFieldUpdateOperationsInput | $Enums.BusinessModel
  status?: Prisma.EnumTenantStatusFieldUpdateOperationsInput | $Enums.TenantStatus
  directoryOptIn?: Prisma.BoolFieldUpdateOperationsInput | boolean
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  deliveryEnabled?: Prisma.BoolFieldUpdateOperationsInput | boolean
  deliveryPriceCents?: Prisma.IntFieldUpdateOperationsInput | number
  showGoogleMap?: Prisma.BoolFieldUpdateOperationsInput | boolean
  feature1Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature1Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  users?: Prisma.TenantUserUpdateManyWithoutTenantNestedInput
  domains?: Prisma.DomainUpdateManyWithoutTenantNestedInput
  theme?: Prisma.ThemeSettingUpdateOneWithoutTenantNestedInput
  subscription?: Prisma.SubscriptionUpdateOneWithoutTenantNestedInput
  auditLogs?: Prisma.AuditLogUpdateManyWithoutTenantNestedInput
  products?: Prisma.ProductUpdateManyWithoutTenantNestedInput
  services?: Prisma.ServiceUpdateManyWithoutTenantNestedInput
  quoteRequests?: Prisma.QuoteRequestUpdateManyWithoutTenantNestedInput
  productCategories?: Prisma.ProductCategoryUpdateManyWithoutTenantNestedInput
  serviceCategories?: Prisma.ServiceCategoryUpdateManyWithoutTenantNestedInput
  mediaAssets?: Prisma.MediaAssetUpdateManyWithoutTenantNestedInput
  orders?: Prisma.OrderUpdateManyWithoutTenantNestedInput
  deliveryZones?: Prisma.DeliveryZoneUpdateManyWithoutTenantNestedInput
  siteBanners?: Prisma.SiteBannerUpdateManyWithoutTenantNestedInput
}

export type TenantUncheckedUpdateWithoutBlogPostsInput = {
  id?: Prisma.StringFieldUpdateOperationsInput | string
  name?: Prisma.StringFieldUpdateOperationsInput | string
  legalDocument?: Prisma.StringFieldUpdateOperationsInput | string
  slug?: Prisma.StringFieldUpdateOperationsInput | string
  email?: Prisma.StringFieldUpdateOperationsInput | string
  phone?: Prisma.StringFieldUpdateOperationsInput | string
  whatsapp?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  city?: Prisma.StringFieldUpdateOperationsInput | string
  state?: Prisma.StringFieldUpdateOperationsInput | string
  segment?: Prisma.StringFieldUpdateOperationsInput | string
  description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  addressLine?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  postalCode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  instagramUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  facebookUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  businessModel?: Prisma.EnumBusinessModelFieldUpdateOperationsInput | $Enums.BusinessModel
  status?: Prisma.EnumTenantStatusFieldUpdateOperationsInput | $Enums.TenantStatus
  directoryOptIn?: Prisma.BoolFieldUpdateOperationsInput | boolean
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  deliveryEnabled?: Prisma.BoolFieldUpdateOperationsInput | boolean
  deliveryPriceCents?: Prisma.IntFieldUpdateOperationsInput | number
  showGoogleMap?: Prisma.BoolFieldUpdateOperationsInput | boolean
  feature1Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature1Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature2Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Title?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  feature3Description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  users?: Prisma.TenantUserUncheckedUpdateManyWithoutTenantNestedInput
  domains?: Prisma.DomainUncheckedUpdateManyWithoutTenantNestedInput
  theme?: Prisma.ThemeSettingUncheckedUpdateOneWithoutTenantNestedInput
  subscription?: Prisma.SubscriptionUncheckedUpdateOneWithoutTenantNestedInput
  auditLogs?: Prisma.AuditLogUncheckedUpdateManyWithoutTenantNestedInput
  products?: Prisma.ProductUncheckedUpdateManyWithoutTenantNestedInput
  services?: Prisma.ServiceUncheckedUpdateManyWithoutTenantNestedInput
  quoteRequests?: Prisma.QuoteRequestUncheckedUpdateManyWithoutTenantNestedInput
  productCategories?: Prisma.ProductCategoryUncheckedUpdateManyWithoutTenantNestedInput
  serviceCategories?: Prisma.ServiceCategoryUncheckedUpdateManyWithoutTenantNestedInput
  mediaAssets?: Prisma.MediaAssetUncheckedUpdateManyWithoutTenantNestedInput
  orders?: Prisma.OrderUncheckedUpdateManyWithoutTenantNestedInput
  deliveryZones?: Prisma.DeliveryZoneUncheckedUpdateManyWithoutTenantNestedInput
  siteBanners?: Prisma.SiteBannerUncheckedUpdateManyWithoutTenantNestedInput
}


/**
 * Count Type TenantCountOutputType
 */

export type TenantCountOutputType = {
  users: number
  domains: number
  auditLogs: number
  products: number
  services: number
  quoteRequests: number
  productCategories: number
  serviceCategories: number
  mediaAssets: number
  orders: number
  deliveryZones: number
  blogPosts: number
  siteBanners: number
}

export type TenantCountOutputTypeSelect<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  users?: boolean | TenantCountOutputTypeCountUsersArgs
  domains?: boolean | TenantCountOutputTypeCountDomainsArgs
  auditLogs?: boolean | TenantCountOutputTypeCountAuditLogsArgs
  products?: boolean | TenantCountOutputTypeCountProductsArgs
  services?: boolean | TenantCountOutputTypeCountServicesArgs
  quoteRequests?: boolean | TenantCountOutputTypeCountQuoteRequestsArgs
  productCategories?: boolean | TenantCountOutputTypeCountProductCategoriesArgs
  serviceCategories?: boolean | TenantCountOutputTypeCountServiceCategoriesArgs
  mediaAssets?: boolean | TenantCountOutputTypeCountMediaAssetsArgs
  orders?: boolean | TenantCountOutputTypeCountOrdersArgs
  deliveryZones?: boolean | TenantCountOutputTypeCountDeliveryZonesArgs
  blogPosts?: boolean | TenantCountOutputTypeCountBlogPostsArgs
  siteBanners?: boolean | TenantCountOutputTypeCountSiteBannersArgs
}

/**
 * TenantCountOutputType without action
 */
export type TenantCountOutputTypeDefaultArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Select specific fields to fetch from the TenantCountOutputType
   */
  select?: Prisma.TenantCountOutputTypeSelect<ExtArgs> | null
}

/**
 * TenantCountOutputType without action
 */
export type TenantCountOutputTypeCountUsersArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  where?: Prisma.TenantUserWhereInput
}

/**
 * TenantCountOutputType without action
 */
export type TenantCountOutputTypeCountDomainsArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  where?: Prisma.DomainWhereInput
}

/**
 * TenantCountOutputType without action
 */
export type TenantCountOutputTypeCountAuditLogsArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  where?: Prisma.AuditLogWhereInput
}

/**
 * TenantCountOutputType without action
 */
export type TenantCountOutputTypeCountProductsArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  where?: Prisma.ProductWhereInput
}

/**
 * TenantCountOutputType without action
 */
export type TenantCountOutputTypeCountServicesArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  where?: Prisma.ServiceWhereInput
}

/**
 * TenantCountOutputType without action
 */
export type TenantCountOutputTypeCountQuoteRequestsArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  where?: Prisma.QuoteRequestWhereInput
}

/**
 * TenantCountOutputType without action
 */
export type TenantCountOutputTypeCountProductCategoriesArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  where?: Prisma.ProductCategoryWhereInput
}

/**
 * TenantCountOutputType without action
 */
export type TenantCountOutputTypeCountServiceCategoriesArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  where?: Prisma.ServiceCategoryWhereInput
}

/**
 * TenantCountOutputType without action
 */
export type TenantCountOutputTypeCountMediaAssetsArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  where?: Prisma.MediaAssetWhereInput
}

/**
 * TenantCountOutputType without action
 */
export type TenantCountOutputTypeCountOrdersArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  where?: Prisma.OrderWhereInput
}

/**
 * TenantCountOutputType without action
 */
export type TenantCountOutputTypeCountDeliveryZonesArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  where?: Prisma.DeliveryZoneWhereInput
}

/**
 * TenantCountOutputType without action
 */
export type TenantCountOutputTypeCountBlogPostsArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  where?: Prisma.BlogPostWhereInput
}

/**
 * TenantCountOutputType without action
 */
export type TenantCountOutputTypeCountSiteBannersArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  where?: Prisma.SiteBannerWhereInput
}


export type TenantSelect<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetSelect<{
  id?: boolean
  name?: boolean
  legalDocument?: boolean
  slug?: boolean
  email?: boolean
  phone?: boolean
  whatsapp?: boolean
  city?: boolean
  state?: boolean
  segment?: boolean
  description?: boolean
  addressLine?: boolean
  postalCode?: boolean
  instagramUrl?: boolean
  facebookUrl?: boolean
  businessModel?: boolean
  status?: boolean
  directoryOptIn?: boolean
  createdAt?: boolean
  updatedAt?: boolean
  deletedAt?: boolean
  deliveryEnabled?: boolean
  deliveryPriceCents?: boolean
  showGoogleMap?: boolean
  feature1Title?: boolean
  feature1Description?: boolean
  feature2Title?: boolean
  feature2Description?: boolean
  feature3Title?: boolean
  feature3Description?: boolean
  users?: boolean | Prisma.Tenant$usersArgs<ExtArgs>
  domains?: boolean | Prisma.Tenant$domainsArgs<ExtArgs>
  theme?: boolean | Prisma.Tenant$themeArgs<ExtArgs>
  subscription?: boolean | Prisma.Tenant$subscriptionArgs<ExtArgs>
  auditLogs?: boolean | Prisma.Tenant$auditLogsArgs<ExtArgs>
  products?: boolean | Prisma.Tenant$productsArgs<ExtArgs>
  services?: boolean | Prisma.Tenant$servicesArgs<ExtArgs>
  quoteRequests?: boolean | Prisma.Tenant$quoteRequestsArgs<ExtArgs>
  productCategories?: boolean | Prisma.Tenant$productCategoriesArgs<ExtArgs>
  serviceCategories?: boolean | Prisma.Tenant$serviceCategoriesArgs<ExtArgs>
  mediaAssets?: boolean | Prisma.Tenant$mediaAssetsArgs<ExtArgs>
  orders?: boolean | Prisma.Tenant$ordersArgs<ExtArgs>
  deliveryZones?: boolean | Prisma.Tenant$deliveryZonesArgs<ExtArgs>
  blogPosts?: boolean | Prisma.Tenant$blogPostsArgs<ExtArgs>
  siteBanners?: boolean | Prisma.Tenant$siteBannersArgs<ExtArgs>
  _count?: boolean | Prisma.TenantCountOutputTypeDefaultArgs<ExtArgs>
}, ExtArgs["result"]["tenant"]>

export type TenantSelectCreateManyAndReturn<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetSelect<{
  id?: boolean
  name?: boolean
  legalDocument?: boolean
  slug?: boolean
  email?: boolean
  phone?: boolean
  whatsapp?: boolean
  city?: boolean
  state?: boolean
  segment?: boolean
  description?: boolean
  addressLine?: boolean
  postalCode?: boolean
  instagramUrl?: boolean
  facebookUrl?: boolean
  businessModel?: boolean
  status?: boolean
  directoryOptIn?: boolean
  createdAt?: boolean
  updatedAt?: boolean
  deletedAt?: boolean
  deliveryEnabled?: boolean
  deliveryPriceCents?: boolean
  showGoogleMap?: boolean
  feature1Title?: boolean
  feature1Description?: boolean
  feature2Title?: boolean
  feature2Description?: boolean
  feature3Title?: boolean
  feature3Description?: boolean
}, ExtArgs["result"]["tenant"]>

export type TenantSelectUpdateManyAndReturn<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetSelect<{
  id?: boolean
  name?: boolean
  legalDocument?: boolean
  slug?: boolean
  email?: boolean
  phone?: boolean
  whatsapp?: boolean
  city?: boolean
  state?: boolean
  segment?: boolean
  description?: boolean
  addressLine?: boolean
  postalCode?: boolean
  instagramUrl?: boolean
  facebookUrl?: boolean
  businessModel?: boolean
  status?: boolean
  directoryOptIn?: boolean
  createdAt?: boolean
  updatedAt?: boolean
  deletedAt?: boolean
  deliveryEnabled?: boolean
  deliveryPriceCents?: boolean
  showGoogleMap?: boolean
  feature1Title?: boolean
  feature1Description?: boolean
  feature2Title?: boolean
  feature2Description?: boolean
  feature3Title?: boolean
  feature3Description?: boolean
}, ExtArgs["result"]["tenant"]>

export type TenantSelectScalar = {
  id?: boolean
  name?: boolean
  legalDocument?: boolean
  slug?: boolean
  email?: boolean
  phone?: boolean
  whatsapp?: boolean
  city?: boolean
  state?: boolean
  segment?: boolean
  description?: boolean
  addressLine?: boolean
  postalCode?: boolean
  instagramUrl?: boolean
  facebookUrl?: boolean
  businessModel?: boolean
  status?: boolean
  directoryOptIn?: boolean
  createdAt?: boolean
  updatedAt?: boolean
  deletedAt?: boolean
  deliveryEnabled?: boolean
  deliveryPriceCents?: boolean
  showGoogleMap?: boolean
  feature1Title?: boolean
  feature1Description?: boolean
  feature2Title?: boolean
  feature2Description?: boolean
  feature3Title?: boolean
  feature3Description?: boolean
}

export type TenantOmit<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetOmit<"id" | "name" | "legalDocument" | "slug" | "email" | "phone" | "whatsapp" | "city" | "state" | "segment" | "description" | "addressLine" | "postalCode" | "instagramUrl" | "facebookUrl" | "businessModel" | "status" | "directoryOptIn" | "createdAt" | "updatedAt" | "deletedAt" | "deliveryEnabled" | "deliveryPriceCents" | "showGoogleMap" | "feature1Title" | "feature1Description" | "feature2Title" | "feature2Description" | "feature3Title" | "feature3Description", ExtArgs["result"]["tenant"]>
export type TenantInclude<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  users?: boolean | Prisma.Tenant$usersArgs<ExtArgs>
  domains?: boolean | Prisma.Tenant$domainsArgs<ExtArgs>
  theme?: boolean | Prisma.Tenant$themeArgs<ExtArgs>
  subscription?: boolean | Prisma.Tenant$subscriptionArgs<ExtArgs>
  auditLogs?: boolean | Prisma.Tenant$auditLogsArgs<ExtArgs>
  products?: boolean | Prisma.Tenant$productsArgs<ExtArgs>
  services?: boolean | Prisma.Tenant$servicesArgs<ExtArgs>
  quoteRequests?: boolean | Prisma.Tenant$quoteRequestsArgs<ExtArgs>
  productCategories?: boolean | Prisma.Tenant$productCategoriesArgs<ExtArgs>
  serviceCategories?: boolean | Prisma.Tenant$serviceCategoriesArgs<ExtArgs>
  mediaAssets?: boolean | Prisma.Tenant$mediaAssetsArgs<ExtArgs>
  orders?: boolean | Prisma.Tenant$ordersArgs<ExtArgs>
  deliveryZones?: boolean | Prisma.Tenant$deliveryZonesArgs<ExtArgs>
  blogPosts?: boolean | Prisma.Tenant$blogPostsArgs<ExtArgs>
  siteBanners?: boolean | Prisma.Tenant$siteBannersArgs<ExtArgs>
  _count?: boolean | Prisma.TenantCountOutputTypeDefaultArgs<ExtArgs>
}
export type TenantIncludeCreateManyAndReturn<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {}
export type TenantIncludeUpdateManyAndReturn<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {}

export type $TenantPayload<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  name: "Tenant"
  objects: {
    users: Prisma.$TenantUserPayload<ExtArgs>[]
    domains: Prisma.$DomainPayload<ExtArgs>[]
    theme: Prisma.$ThemeSettingPayload<ExtArgs> | null
    subscription: Prisma.$SubscriptionPayload<ExtArgs> | null
    auditLogs: Prisma.$AuditLogPayload<ExtArgs>[]
    products: Prisma.$ProductPayload<ExtArgs>[]
    services: Prisma.$ServicePayload<ExtArgs>[]
    quoteRequests: Prisma.$QuoteRequestPayload<ExtArgs>[]
    productCategories: Prisma.$ProductCategoryPayload<ExtArgs>[]
    serviceCategories: Prisma.$ServiceCategoryPayload<ExtArgs>[]
    mediaAssets: Prisma.$MediaAssetPayload<ExtArgs>[]
    orders: Prisma.$OrderPayload<ExtArgs>[]
    deliveryZones: Prisma.$DeliveryZonePayload<ExtArgs>[]
    blogPosts: Prisma.$BlogPostPayload<ExtArgs>[]
    siteBanners: Prisma.$SiteBannerPayload<ExtArgs>[]
  }
  scalars: runtime.Types.Extensions.GetPayloadResult<{
    id: string
    name: string
    legalDocument: string
    slug: string
    email: string
    phone: string
    whatsapp: string | null
    city: string
    state: string
    segment: string
    description: string | null
    addressLine: string | null
    postalCode: string | null
    instagramUrl: string | null
    facebookUrl: string | null
    businessModel: $Enums.BusinessModel
    status: $Enums.TenantStatus
    directoryOptIn: boolean
    createdAt: Date
    updatedAt: Date
    deletedAt: Date | null
    deliveryEnabled: boolean
    deliveryPriceCents: number
    showGoogleMap: boolean
    feature1Title: string | null
    feature1Description: string | null
    feature2Title: string | null
    feature2Description: string | null
    feature3Title: string | null
    feature3Description: string | null
  }, ExtArgs["result"]["tenant"]>
  composites: {}
}

export type TenantGetPayload<S extends boolean | null | undefined | TenantDefaultArgs> = runtime.Types.Result.GetResult<Prisma.$TenantPayload, S>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

/**
 * The delegate class that acts as a "Promise-like" for Tenant.
 * Why is this prefixed with `Prisma__`?
 * Because we want to prevent naming conflicts as mentioned in
 * https://github.com/prisma/prisma-client-js/issues/707
 */
export interface Prisma__TenantClient<T, Null = never, ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
  readonly [Symbol.toStringTag]: "PrismaPromise"
  users<T extends Prisma.Tenant$usersArgs<ExtArgs> = {}>(args?: Prisma.Subset<T, Prisma.Tenant$usersArgs<ExtArgs>>): Prisma.PrismaPromise<runtime.Types.Result.GetResult<Prisma.$TenantUserPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
  domains<T extends Prisma.Tenant$domainsArgs<ExtArgs> = {}>(args?: Prisma.Subset<T, Prisma.Tenant$domainsArgs<ExtArgs>>): Prisma.PrismaPromise<runtime.Types.Result.GetResult<Prisma.$DomainPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
  theme<T extends Prisma.Tenant$themeArgs<ExtArgs> = {}>(args?: Prisma.Subset<T, Prisma.Tenant$themeArgs<ExtArgs>>): Prisma.Prisma__ThemeSettingClient<runtime.Types.Result.GetResult<Prisma.$ThemeSettingPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
  subscription<T extends Prisma.Tenant$subscriptionArgs<ExtArgs> = {}>(args?: Prisma.Subset<T, Prisma.Tenant$subscriptionArgs<ExtArgs>>): Prisma.Prisma__SubscriptionClient<runtime.Types.Result.GetResult<Prisma.$SubscriptionPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
  auditLogs<T extends Prisma.Tenant$auditLogsArgs<ExtArgs> = {}>(args?: Prisma.Subset<T, Prisma.Tenant$auditLogsArgs<ExtArgs>>): Prisma.PrismaPromise<runtime.Types.Result.GetResult<Prisma.$AuditLogPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
  products<T extends Prisma.Tenant$productsArgs<ExtArgs> = {}>(args?: Prisma.Subset<T, Prisma.Tenant$productsArgs<ExtArgs>>): Prisma.PrismaPromise<runtime.Types.Result.GetResult<Prisma.$ProductPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
  services<T extends Prisma.Tenant$servicesArgs<ExtArgs> = {}>(args?: Prisma.Subset<T, Prisma.Tenant$servicesArgs<ExtArgs>>): Prisma.PrismaPromise<runtime.Types.Result.GetResult<Prisma.$ServicePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
  quoteRequests<T extends Prisma.Tenant$quoteRequestsArgs<ExtArgs> = {}>(args?: Prisma.Subset<T, Prisma.Tenant$quoteRequestsArgs<ExtArgs>>): Prisma.PrismaPromise<runtime.Types.Result.GetResult<Prisma.$QuoteRequestPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
  productCategories<T extends Prisma.Tenant$productCategoriesArgs<ExtArgs> = {}>(args?: Prisma.Subset<T, Prisma.Tenant$productCategoriesArgs<ExtArgs>>): Prisma.PrismaPromise<runtime.Types.Result.GetResult<Prisma.$ProductCategoryPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
  serviceCategories<T extends Prisma.Tenant$serviceCategoriesArgs<ExtArgs> = {}>(args?: Prisma.Subset<T, Prisma.Tenant$serviceCategoriesArgs<ExtArgs>>): Prisma.PrismaPromise<runtime.Types.Result.GetResult<Prisma.$ServiceCategoryPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
  mediaAssets<T extends Prisma.Tenant$mediaAssetsArgs<ExtArgs> = {}>(args?: Prisma.Subset<T, Prisma.Tenant$mediaAssetsArgs<ExtArgs>>): Prisma.PrismaPromise<runtime.Types.Result.GetResult<Prisma.$MediaAssetPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
  orders<T extends Prisma.Tenant$ordersArgs<ExtArgs> = {}>(args?: Prisma.Subset<T, Prisma.Tenant$ordersArgs<ExtArgs>>): Prisma.PrismaPromise<runtime.Types.Result.GetResult<Prisma.$OrderPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
  deliveryZones<T extends Prisma.Tenant$deliveryZonesArgs<ExtArgs> = {}>(args?: Prisma.Subset<T, Prisma.Tenant$deliveryZonesArgs<ExtArgs>>): Prisma.PrismaPromise<runtime.Types.Result.GetResult<Prisma.$DeliveryZonePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
  blogPosts<T extends Prisma.Tenant$blogPostsArgs<ExtArgs> = {}>(args?: Prisma.Subset<T, Prisma.Tenant$blogPostsArgs<ExtArgs>>): Prisma.PrismaPromise<runtime.Types.Result.GetResult<Prisma.$BlogPostPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
  siteBanners<T extends Prisma.Tenant$siteBannersArgs<ExtArgs> = {}>(args?: Prisma.Subset<T, Prisma.Tenant$siteBannersArgs<ExtArgs>>): Prisma.PrismaPromise<runtime.Types.Result.GetResult<Prisma.$SiteBannerPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
  /**
   * Attaches callbacks for the resolution and/or rejection of the Promise.
   * @param onfulfilled The callback to execute when the Promise is resolved.
   * @param onrejected The callback to execute when the Promise is rejected.
   * @returns A Promise for the completion of which ever callback is executed.
   */
  then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): runtime.Types.Utils.JsPromise<TResult1 | TResult2>
  /**
   * Attaches a callback for only the rejection of the Promise.
   * @param onrejected The callback to execute when the Promise is rejected.
   * @returns A Promise for the completion of the callback.
   */
  catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): runtime.Types.Utils.JsPromise<T | TResult>
  /**
   * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
   * resolved value cannot be modified from the callback.
   * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
   * @returns A Promise for the completion of the callback.
   */
  finally(onfinally?: (() => void) | undefined | null): runtime.Types.Utils.JsPromise<T>
}




/**
 * Fields of the Tenant model
 */
export interface TenantFieldRefs {
  readonly id: Prisma.FieldRef<"Tenant", 'String'>
  readonly name: Prisma.FieldRef<"Tenant", 'String'>
  readonly legalDocument: Prisma.FieldRef<"Tenant", 'String'>
  readonly slug: Prisma.FieldRef<"Tenant", 'String'>
  readonly email: Prisma.FieldRef<"Tenant", 'String'>
  readonly phone: Prisma.FieldRef<"Tenant", 'String'>
  readonly whatsapp: Prisma.FieldRef<"Tenant", 'String'>
  readonly city: Prisma.FieldRef<"Tenant", 'String'>
  readonly state: Prisma.FieldRef<"Tenant", 'String'>
  readonly segment: Prisma.FieldRef<"Tenant", 'String'>
  readonly description: Prisma.FieldRef<"Tenant", 'String'>
  readonly addressLine: Prisma.FieldRef<"Tenant", 'String'>
  readonly postalCode: Prisma.FieldRef<"Tenant", 'String'>
  readonly instagramUrl: Prisma.FieldRef<"Tenant", 'String'>
  readonly facebookUrl: Prisma.FieldRef<"Tenant", 'String'>
  readonly businessModel: Prisma.FieldRef<"Tenant", 'BusinessModel'>
  readonly status: Prisma.FieldRef<"Tenant", 'TenantStatus'>
  readonly directoryOptIn: Prisma.FieldRef<"Tenant", 'Boolean'>
  readonly createdAt: Prisma.FieldRef<"Tenant", 'DateTime'>
  readonly updatedAt: Prisma.FieldRef<"Tenant", 'DateTime'>
  readonly deletedAt: Prisma.FieldRef<"Tenant", 'DateTime'>
  readonly deliveryEnabled: Prisma.FieldRef<"Tenant", 'Boolean'>
  readonly deliveryPriceCents: Prisma.FieldRef<"Tenant", 'Int'>
  readonly showGoogleMap: Prisma.FieldRef<"Tenant", 'Boolean'>
  readonly feature1Title: Prisma.FieldRef<"Tenant", 'String'>
  readonly feature1Description: Prisma.FieldRef<"Tenant", 'String'>
  readonly feature2Title: Prisma.FieldRef<"Tenant", 'String'>
  readonly feature2Description: Prisma.FieldRef<"Tenant", 'String'>
  readonly feature3Title: Prisma.FieldRef<"Tenant", 'String'>
  readonly feature3Description: Prisma.FieldRef<"Tenant", 'String'>
}
    

// Custom InputTypes
/**
 * Tenant findUnique
 */
export type TenantFindUniqueArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Select specific fields to fetch from the Tenant
   */
  select?: Prisma.TenantSelect<ExtArgs> | null
  /**
   * Omit specific fields from the Tenant
   */
  omit?: Prisma.TenantOmit<ExtArgs> | null
  /**
   * Choose, which related nodes to fetch as well
   */
  include?: Prisma.TenantInclude<ExtArgs> | null
  /**
   * Filter, which Tenant to fetch.
   */
  where: Prisma.TenantWhereUniqueInput
}

/**
 * Tenant findUniqueOrThrow
 */
export type TenantFindUniqueOrThrowArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Select specific fields to fetch from the Tenant
   */
  select?: Prisma.TenantSelect<ExtArgs> | null
  /**
   * Omit specific fields from the Tenant
   */
  omit?: Prisma.TenantOmit<ExtArgs> | null
  /**
   * Choose, which related nodes to fetch as well
   */
  include?: Prisma.TenantInclude<ExtArgs> | null
  /**
   * Filter, which Tenant to fetch.
   */
  where: Prisma.TenantWhereUniqueInput
}

/**
 * Tenant findFirst
 */
export type TenantFindFirstArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Select specific fields to fetch from the Tenant
   */
  select?: Prisma.TenantSelect<ExtArgs> | null
  /**
   * Omit specific fields from the Tenant
   */
  omit?: Prisma.TenantOmit<ExtArgs> | null
  /**
   * Choose, which related nodes to fetch as well
   */
  include?: Prisma.TenantInclude<ExtArgs> | null
  /**
   * Filter, which Tenant to fetch.
   */
  where?: Prisma.TenantWhereInput
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
   * 
   * Determine the order of Tenants to fetch.
   */
  orderBy?: Prisma.TenantOrderByWithRelationInput | Prisma.TenantOrderByWithRelationInput[]
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
   * 
   * Sets the position for searching for Tenants.
   */
  cursor?: Prisma.TenantWhereUniqueInput
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
   * 
   * Take `±n` Tenants from the position of the cursor.
   */
  take?: number
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
   * 
   * Skip the first `n` Tenants.
   */
  skip?: number
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
   * 
   * Filter by unique combinations of Tenants.
   */
  distinct?: Prisma.TenantScalarFieldEnum | Prisma.TenantScalarFieldEnum[]
}

/**
 * Tenant findFirstOrThrow
 */
export type TenantFindFirstOrThrowArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Select specific fields to fetch from the Tenant
   */
  select?: Prisma.TenantSelect<ExtArgs> | null
  /**
   * Omit specific fields from the Tenant
   */
  omit?: Prisma.TenantOmit<ExtArgs> | null
  /**
   * Choose, which related nodes to fetch as well
   */
  include?: Prisma.TenantInclude<ExtArgs> | null
  /**
   * Filter, which Tenant to fetch.
   */
  where?: Prisma.TenantWhereInput
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
   * 
   * Determine the order of Tenants to fetch.
   */
  orderBy?: Prisma.TenantOrderByWithRelationInput | Prisma.TenantOrderByWithRelationInput[]
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
   * 
   * Sets the position for searching for Tenants.
   */
  cursor?: Prisma.TenantWhereUniqueInput
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
   * 
   * Take `±n` Tenants from the position of the cursor.
   */
  take?: number
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
   * 
   * Skip the first `n` Tenants.
   */
  skip?: number
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
   * 
   * Filter by unique combinations of Tenants.
   */
  distinct?: Prisma.TenantScalarFieldEnum | Prisma.TenantScalarFieldEnum[]
}

/**
 * Tenant findMany
 */
export type TenantFindManyArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Select specific fields to fetch from the Tenant
   */
  select?: Prisma.TenantSelect<ExtArgs> | null
  /**
   * Omit specific fields from the Tenant
   */
  omit?: Prisma.TenantOmit<ExtArgs> | null
  /**
   * Choose, which related nodes to fetch as well
   */
  include?: Prisma.TenantInclude<ExtArgs> | null
  /**
   * Filter, which Tenants to fetch.
   */
  where?: Prisma.TenantWhereInput
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
   * 
   * Determine the order of Tenants to fetch.
   */
  orderBy?: Prisma.TenantOrderByWithRelationInput | Prisma.TenantOrderByWithRelationInput[]
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
   * 
   * Sets the position for listing Tenants.
   */
  cursor?: Prisma.TenantWhereUniqueInput
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
   * 
   * Take `±n` Tenants from the position of the cursor.
   */
  take?: number
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
   * 
   * Skip the first `n` Tenants.
   */
  skip?: number
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
   * 
   * Filter by unique combinations of Tenants.
   */
  distinct?: Prisma.TenantScalarFieldEnum | Prisma.TenantScalarFieldEnum[]
}

/**
 * Tenant create
 */
export type TenantCreateArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Select specific fields to fetch from the Tenant
   */
  select?: Prisma.TenantSelect<ExtArgs> | null
  /**
   * Omit specific fields from the Tenant
   */
  omit?: Prisma.TenantOmit<ExtArgs> | null
  /**
   * Choose, which related nodes to fetch as well
   */
  include?: Prisma.TenantInclude<ExtArgs> | null
  /**
   * The data needed to create a Tenant.
   */
  data: Prisma.XOR<Prisma.TenantCreateInput, Prisma.TenantUncheckedCreateInput>
}

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

/**
 * Tenant createManyAndReturn
 */
export type TenantCreateManyAndReturnArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Select specific fields to fetch from the Tenant
   */
  select?: Prisma.TenantSelectCreateManyAndReturn<ExtArgs> | null
  /**
   * Omit specific fields from the Tenant
   */
  omit?: Prisma.TenantOmit<ExtArgs> | null
  /**
   * The data used to create many Tenants.
   */
  data: Prisma.TenantCreateManyInput | Prisma.TenantCreateManyInput[]
  skipDuplicates?: boolean
}

/**
 * Tenant update
 */
export type TenantUpdateArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Select specific fields to fetch from the Tenant
   */
  select?: Prisma.TenantSelect<ExtArgs> | null
  /**
   * Omit specific fields from the Tenant
   */
  omit?: Prisma.TenantOmit<ExtArgs> | null
  /**
   * Choose, which related nodes to fetch as well
   */
  include?: Prisma.TenantInclude<ExtArgs> | null
  /**
   * The data needed to update a Tenant.
   */
  data: Prisma.XOR<Prisma.TenantUpdateInput, Prisma.TenantUncheckedUpdateInput>
  /**
   * Choose, which Tenant to update.
   */
  where: Prisma.TenantWhereUniqueInput
}

/**
 * Tenant updateMany
 */
export type TenantUpdateManyArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * The data used to update Tenants.
   */
  data: Prisma.XOR<Prisma.TenantUpdateManyMutationInput, Prisma.TenantUncheckedUpdateManyInput>
  /**
   * Filter which Tenants to update
   */
  where?: Prisma.TenantWhereInput
  /**
   * Limit how many Tenants to update.
   */
  limit?: number
}

/**
 * Tenant updateManyAndReturn
 */
export type TenantUpdateManyAndReturnArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Select specific fields to fetch from the Tenant
   */
  select?: Prisma.TenantSelectUpdateManyAndReturn<ExtArgs> | null
  /**
   * Omit specific fields from the Tenant
   */
  omit?: Prisma.TenantOmit<ExtArgs> | null
  /**
   * The data used to update Tenants.
   */
  data: Prisma.XOR<Prisma.TenantUpdateManyMutationInput, Prisma.TenantUncheckedUpdateManyInput>
  /**
   * Filter which Tenants to update
   */
  where?: Prisma.TenantWhereInput
  /**
   * Limit how many Tenants to update.
   */
  limit?: number
}

/**
 * Tenant upsert
 */
export type TenantUpsertArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Select specific fields to fetch from the Tenant
   */
  select?: Prisma.TenantSelect<ExtArgs> | null
  /**
   * Omit specific fields from the Tenant
   */
  omit?: Prisma.TenantOmit<ExtArgs> | null
  /**
   * Choose, which related nodes to fetch as well
   */
  include?: Prisma.TenantInclude<ExtArgs> | null
  /**
   * The filter to search for the Tenant to update in case it exists.
   */
  where: Prisma.TenantWhereUniqueInput
  /**
   * In case the Tenant found by the `where` argument doesn't exist, create a new Tenant with this data.
   */
  create: Prisma.XOR<Prisma.TenantCreateInput, Prisma.TenantUncheckedCreateInput>
  /**
   * In case the Tenant was found with the provided `where` argument, update it with this data.
   */
  update: Prisma.XOR<Prisma.TenantUpdateInput, Prisma.TenantUncheckedUpdateInput>
}

/**
 * Tenant delete
 */
export type TenantDeleteArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Select specific fields to fetch from the Tenant
   */
  select?: Prisma.TenantSelect<ExtArgs> | null
  /**
   * Omit specific fields from the Tenant
   */
  omit?: Prisma.TenantOmit<ExtArgs> | null
  /**
   * Choose, which related nodes to fetch as well
   */
  include?: Prisma.TenantInclude<ExtArgs> | null
  /**
   * Filter which Tenant to delete.
   */
  where: Prisma.TenantWhereUniqueInput
}

/**
 * Tenant deleteMany
 */
export type TenantDeleteManyArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Filter which Tenants to delete
   */
  where?: Prisma.TenantWhereInput
  /**
   * Limit how many Tenants to delete.
   */
  limit?: number
}

/**
 * Tenant.users
 */
export type Tenant$usersArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Select specific fields to fetch from the TenantUser
   */
  select?: Prisma.TenantUserSelect<ExtArgs> | null
  /**
   * Omit specific fields from the TenantUser
   */
  omit?: Prisma.TenantUserOmit<ExtArgs> | null
  /**
   * Choose, which related nodes to fetch as well
   */
  include?: Prisma.TenantUserInclude<ExtArgs> | null
  where?: Prisma.TenantUserWhereInput
  orderBy?: Prisma.TenantUserOrderByWithRelationInput | Prisma.TenantUserOrderByWithRelationInput[]
  cursor?: Prisma.TenantUserWhereUniqueInput
  take?: number
  skip?: number
  distinct?: Prisma.TenantUserScalarFieldEnum | Prisma.TenantUserScalarFieldEnum[]
}

/**
 * Tenant.domains
 */
export type Tenant$domainsArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Select specific fields to fetch from the Domain
   */
  select?: Prisma.DomainSelect<ExtArgs> | null
  /**
   * Omit specific fields from the Domain
   */
  omit?: Prisma.DomainOmit<ExtArgs> | null
  /**
   * Choose, which related nodes to fetch as well
   */
  include?: Prisma.DomainInclude<ExtArgs> | null
  where?: Prisma.DomainWhereInput
  orderBy?: Prisma.DomainOrderByWithRelationInput | Prisma.DomainOrderByWithRelationInput[]
  cursor?: Prisma.DomainWhereUniqueInput
  take?: number
  skip?: number
  distinct?: Prisma.DomainScalarFieldEnum | Prisma.DomainScalarFieldEnum[]
}

/**
 * Tenant.theme
 */
export type Tenant$themeArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Select specific fields to fetch from the ThemeSetting
   */
  select?: Prisma.ThemeSettingSelect<ExtArgs> | null
  /**
   * Omit specific fields from the ThemeSetting
   */
  omit?: Prisma.ThemeSettingOmit<ExtArgs> | null
  /**
   * Choose, which related nodes to fetch as well
   */
  include?: Prisma.ThemeSettingInclude<ExtArgs> | null
  where?: Prisma.ThemeSettingWhereInput
}

/**
 * Tenant.subscription
 */
export type Tenant$subscriptionArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Select specific fields to fetch from the Subscription
   */
  select?: Prisma.SubscriptionSelect<ExtArgs> | null
  /**
   * Omit specific fields from the Subscription
   */
  omit?: Prisma.SubscriptionOmit<ExtArgs> | null
  /**
   * Choose, which related nodes to fetch as well
   */
  include?: Prisma.SubscriptionInclude<ExtArgs> | null
  where?: Prisma.SubscriptionWhereInput
}

/**
 * Tenant.auditLogs
 */
export type Tenant$auditLogsArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Select specific fields to fetch from the AuditLog
   */
  select?: Prisma.AuditLogSelect<ExtArgs> | null
  /**
   * Omit specific fields from the AuditLog
   */
  omit?: Prisma.AuditLogOmit<ExtArgs> | null
  /**
   * Choose, which related nodes to fetch as well
   */
  include?: Prisma.AuditLogInclude<ExtArgs> | null
  where?: Prisma.AuditLogWhereInput
  orderBy?: Prisma.AuditLogOrderByWithRelationInput | Prisma.AuditLogOrderByWithRelationInput[]
  cursor?: Prisma.AuditLogWhereUniqueInput
  take?: number
  skip?: number
  distinct?: Prisma.AuditLogScalarFieldEnum | Prisma.AuditLogScalarFieldEnum[]
}

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

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

/**
 * Tenant.quoteRequests
 */
export type Tenant$quoteRequestsArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Select specific fields to fetch from the QuoteRequest
   */
  select?: Prisma.QuoteRequestSelect<ExtArgs> | null
  /**
   * Omit specific fields from the QuoteRequest
   */
  omit?: Prisma.QuoteRequestOmit<ExtArgs> | null
  /**
   * Choose, which related nodes to fetch as well
   */
  include?: Prisma.QuoteRequestInclude<ExtArgs> | null
  where?: Prisma.QuoteRequestWhereInput
  orderBy?: Prisma.QuoteRequestOrderByWithRelationInput | Prisma.QuoteRequestOrderByWithRelationInput[]
  cursor?: Prisma.QuoteRequestWhereUniqueInput
  take?: number
  skip?: number
  distinct?: Prisma.QuoteRequestScalarFieldEnum | Prisma.QuoteRequestScalarFieldEnum[]
}

/**
 * Tenant.productCategories
 */
export type Tenant$productCategoriesArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Select specific fields to fetch from the ProductCategory
   */
  select?: Prisma.ProductCategorySelect<ExtArgs> | null
  /**
   * Omit specific fields from the ProductCategory
   */
  omit?: Prisma.ProductCategoryOmit<ExtArgs> | null
  /**
   * Choose, which related nodes to fetch as well
   */
  include?: Prisma.ProductCategoryInclude<ExtArgs> | null
  where?: Prisma.ProductCategoryWhereInput
  orderBy?: Prisma.ProductCategoryOrderByWithRelationInput | Prisma.ProductCategoryOrderByWithRelationInput[]
  cursor?: Prisma.ProductCategoryWhereUniqueInput
  take?: number
  skip?: number
  distinct?: Prisma.ProductCategoryScalarFieldEnum | Prisma.ProductCategoryScalarFieldEnum[]
}

/**
 * Tenant.serviceCategories
 */
export type Tenant$serviceCategoriesArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Select specific fields to fetch from the ServiceCategory
   */
  select?: Prisma.ServiceCategorySelect<ExtArgs> | null
  /**
   * Omit specific fields from the ServiceCategory
   */
  omit?: Prisma.ServiceCategoryOmit<ExtArgs> | null
  /**
   * Choose, which related nodes to fetch as well
   */
  include?: Prisma.ServiceCategoryInclude<ExtArgs> | null
  where?: Prisma.ServiceCategoryWhereInput
  orderBy?: Prisma.ServiceCategoryOrderByWithRelationInput | Prisma.ServiceCategoryOrderByWithRelationInput[]
  cursor?: Prisma.ServiceCategoryWhereUniqueInput
  take?: number
  skip?: number
  distinct?: Prisma.ServiceCategoryScalarFieldEnum | Prisma.ServiceCategoryScalarFieldEnum[]
}

/**
 * Tenant.mediaAssets
 */
export type Tenant$mediaAssetsArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Select specific fields to fetch from the MediaAsset
   */
  select?: Prisma.MediaAssetSelect<ExtArgs> | null
  /**
   * Omit specific fields from the MediaAsset
   */
  omit?: Prisma.MediaAssetOmit<ExtArgs> | null
  /**
   * Choose, which related nodes to fetch as well
   */
  include?: Prisma.MediaAssetInclude<ExtArgs> | null
  where?: Prisma.MediaAssetWhereInput
  orderBy?: Prisma.MediaAssetOrderByWithRelationInput | Prisma.MediaAssetOrderByWithRelationInput[]
  cursor?: Prisma.MediaAssetWhereUniqueInput
  take?: number
  skip?: number
  distinct?: Prisma.MediaAssetScalarFieldEnum | Prisma.MediaAssetScalarFieldEnum[]
}

/**
 * Tenant.orders
 */
export type Tenant$ordersArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Select specific fields to fetch from the Order
   */
  select?: Prisma.OrderSelect<ExtArgs> | null
  /**
   * Omit specific fields from the Order
   */
  omit?: Prisma.OrderOmit<ExtArgs> | null
  /**
   * Choose, which related nodes to fetch as well
   */
  include?: Prisma.OrderInclude<ExtArgs> | null
  where?: Prisma.OrderWhereInput
  orderBy?: Prisma.OrderOrderByWithRelationInput | Prisma.OrderOrderByWithRelationInput[]
  cursor?: Prisma.OrderWhereUniqueInput
  take?: number
  skip?: number
  distinct?: Prisma.OrderScalarFieldEnum | Prisma.OrderScalarFieldEnum[]
}

/**
 * Tenant.deliveryZones
 */
export type Tenant$deliveryZonesArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Select specific fields to fetch from the DeliveryZone
   */
  select?: Prisma.DeliveryZoneSelect<ExtArgs> | null
  /**
   * Omit specific fields from the DeliveryZone
   */
  omit?: Prisma.DeliveryZoneOmit<ExtArgs> | null
  /**
   * Choose, which related nodes to fetch as well
   */
  include?: Prisma.DeliveryZoneInclude<ExtArgs> | null
  where?: Prisma.DeliveryZoneWhereInput
  orderBy?: Prisma.DeliveryZoneOrderByWithRelationInput | Prisma.DeliveryZoneOrderByWithRelationInput[]
  cursor?: Prisma.DeliveryZoneWhereUniqueInput
  take?: number
  skip?: number
  distinct?: Prisma.DeliveryZoneScalarFieldEnum | Prisma.DeliveryZoneScalarFieldEnum[]
}

/**
 * Tenant.blogPosts
 */
export type Tenant$blogPostsArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Select specific fields to fetch from the BlogPost
   */
  select?: Prisma.BlogPostSelect<ExtArgs> | null
  /**
   * Omit specific fields from the BlogPost
   */
  omit?: Prisma.BlogPostOmit<ExtArgs> | null
  /**
   * Choose, which related nodes to fetch as well
   */
  include?: Prisma.BlogPostInclude<ExtArgs> | null
  where?: Prisma.BlogPostWhereInput
  orderBy?: Prisma.BlogPostOrderByWithRelationInput | Prisma.BlogPostOrderByWithRelationInput[]
  cursor?: Prisma.BlogPostWhereUniqueInput
  take?: number
  skip?: number
  distinct?: Prisma.BlogPostScalarFieldEnum | Prisma.BlogPostScalarFieldEnum[]
}

/**
 * Tenant.siteBanners
 */
export type Tenant$siteBannersArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Select specific fields to fetch from the SiteBanner
   */
  select?: Prisma.SiteBannerSelect<ExtArgs> | null
  /**
   * Omit specific fields from the SiteBanner
   */
  omit?: Prisma.SiteBannerOmit<ExtArgs> | null
  /**
   * Choose, which related nodes to fetch as well
   */
  include?: Prisma.SiteBannerInclude<ExtArgs> | null
  where?: Prisma.SiteBannerWhereInput
  orderBy?: Prisma.SiteBannerOrderByWithRelationInput | Prisma.SiteBannerOrderByWithRelationInput[]
  cursor?: Prisma.SiteBannerWhereUniqueInput
  take?: number
  skip?: number
  distinct?: Prisma.SiteBannerScalarFieldEnum | Prisma.SiteBannerScalarFieldEnum[]
}

/**
 * Tenant without action
 */
export type TenantDefaultArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Select specific fields to fetch from the Tenant
   */
  select?: Prisma.TenantSelect<ExtArgs> | null
  /**
   * Omit specific fields from the Tenant
   */
  omit?: Prisma.TenantOmit<ExtArgs> | null
  /**
   * Choose, which related nodes to fetch as well
   */
  include?: Prisma.TenantInclude<ExtArgs> | null
}
